LINUX.ORG.RU

Компиляция приложений с boost

 , ,


0

2

Приветствую всех.

Подскажите, пожалуйста (помогите).

В линуксе пока что большой новичёк. Работаю с Centos 7.

Установил boost следующим образом: скачал, распаковал, зашёл в папку, ввел ./bootstrap.sh, ввел ./b2 install. Всё вроде как установилось в папку usr/local/include/boost (инклуды все), usr/local/lib (либы).

Теперь как мне компилировать мой код, который юзает boost? Вот мой мейкфайл. Использую regex из boost. Ну и нужно, чтобы эта прога запускалось на любой ос (даже где нет boost).

OUTFILE = "Advanced-SA-NickName.so"
 
COMPILE_FLAGS= -std=c++11 -m32 -c -O3 -w -DLINUX -I./SDK/amx/

all:
	gcc $(COMPILE_FLAGS) SDK/amx/*.c
	g++ $(COMPILE_FLAGS) SDK/*.cpp
	g++ $(COMPILE_FLAGS) INI/*.cpp
	g++ $(COMPILE_FLAGS) *.cpp
	g++ -m32 -O -pthread -unistd -fshort-wchar -shared -o $(OUTFILE) *.o
	rm *.o

Мой мейкфайл. Что добавить, чего не хватает? Пожалуйста, просьба подсказать чем можно понятнее!)

Установил boost следующим образом

В линуксе библиотеки и их хедера лучше ставить через пакетный менеджер, если не нужна какая-то особенная версия библиотеки.

Использую regex из boost

Он же в стандарте уже, зачем тут boostю

anonymous
()
Ответ на: комментарий от anonymous

Могу удалить и поставить из стандартного, не проблема)

Но как тогда всё равно компилить? что приписать?

Мне нужно, чтобы это чудо работало на лине и на винде. Проще, помойму так, чем юзать разные библиотеки и функции)

Ну и хотелось бы познакомиться с boost. Не раз ещё столкнусь.

KrYpToDeN
() автор топика
Ответ на: комментарий от anonymous

Если сделать так, то тогда такой вопрос! как установить версию 4.9? ставится по умолчанию только 4.8. Ну и в таком случае ничего в makefile писать не нужно будет?

KrYpToDeN
() автор топика
Ответ на: комментарий от KrYpToDeN

Но как тогда всё равно компилить? что приписать?

Путь к хедерам (-I/some/path) для компиляции, и путь к библиотеке(-L/some/path) и собственно саму библиотеку (-lsomelibrary) для линковки. Пути к стандартным директориям для хедеров и библиотек можно не писать. Как называется библиотека - надо смотреть название файла. Ну и по написанию Makefile стоит почитать, например, самое простое:

http://mrbook.org/blog/tutorials/make/

Ну и хотелось бы познакомиться с boost. Не раз ещё столкнусь.

Большинство нужного оттуда уже перекочевало в стандарт С++, так что прежде всего надо ориентироваться на него, а потом уже искать что-то в boost.

anonymous
()
Ответ на: комментарий от KrYpToDeN

Если сделать так, то тогда такой вопрос! как установить версию 4.9? ставится по умолчанию только 4.8.

Для Centos придется искать сторонние репозитории или собирать руками (что слишком замороченно в любом случае). Это дистрибутив с самыми древними версиями программ. В остальных уже gcc 6.2 есть. Тут не подскажу, это надо спрашивать тех, кто им пользуется для разработки, если такие тут есть.

Ну и в таком случае ничего в makefile писать не нужно будет?

Да, в таком случае будет использована только стандартная библиотека С++. Хотя бывают и исключения. Например, если использовать std::thread, то надо будет добавлять -lpthread.

anonymous
()
Ответ на: комментарий от anonymous

хорошо, понял! Спасибо всем большое!)

Ну и сразу спрошу ещё вопрос насчет выше сказанного.

Какую ОС лучше юзать, чтобы норм для сайтов было и чтобы все проги обновленные из стандарной установки шли?

KrYpToDeN
() автор топика
Ответ на: комментарий от KrYpToDeN

Какую ОС лучше юзать, чтобы норм для сайтов было и чтобы все проги обновленные из стандарной установки шли?

Ну это уже чуть ли не религиозный вопрос, где каждый будет советовать то, что сам использует :) Лично я пользуюсь Ubuntu для повседневной разработки, вполне устраивает, вебом не занимаюсь, потому на эту тему лучше пусть другие скажут.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.