как включить библиотеки Boost (вместе с включаемыми файлами) в стандартный путь поиска MinGW, чтобы я мог сделать что-то подобное;
#include <filesystem.hpp>
using boost::filesystem;
и избегать добавления -I, -l и -L в Makefile, как в стандартной библиотеке C ++?
(Я использую скомпилированный Boost 1.51.0 на Windows 7)
По умолчанию GCC ищет переменные среды C_INCLUDE_PATH и CPP_INCLUDE_PATH.
Вместо того, чтобы делать -I, вы можете добавить следующее в ваш .bashrc:
export CPP_INCLUDE_PATH=/path/to/your/boost/header
Как я это делаю (для /usr/local
) Я добавляю в свой глобально определенный CXXFLAGS
, Я всегда использую MinGW в сочетании с MSys. Я поменял фстаб (C:\MinGW\msys\1.0\etc\fstab
) на карту C:\Users
в /home
, (Это должно быть по умолчанию в любом случае.) Затем я определяю .profile
файл в моем пользовательском каталоге, который содержит мой «по умолчанию» CFLAGS
, CXXFLAGS
а также LDFLAGS
, Итак, в моем случае:
export CFLAGS=-g -Wall -I/usr/local/include
export CXXFLAGS=-g -Wall -I/usr/local/include
export LDFLAGS=/usr/local/lib
В make-файле я только расширяю переменные по мере необходимости:
LDFLAGS += -lawsomelib
Это работает как шарм и имеет то преимущество, что я могу переопределить локально CXXFLAGS
в особых случаях. В основном вы должны предполагать в make-файле, что переменные CC, CXX, CXXFLAGS, CFLAGS и LDFLAGS уже определены и содержат полезные вещи. Это портативный и своего рода стандартный способ сделать это.
(НОТА: /usr/local
не используется в качестве стандартного местоположения включения в ванильном MinGW + MSys.)