将Boost库包含在标准的MinGW路径中

时间:2012-09-11 10:36:56

标签: c++ boost mingw

如何在MinGW的标准搜索路径中包含Boost库(及其包含文件),以便我可以执行类似的操作;

#include <filesystem.hpp>
using boost::filesystem;

并避免在Makefile中添加-I,-l和-L,就像C ++标准库一样? (我在Windows 7上使用编译的boost 1.51.0)

2 个答案:

答案 0 :(得分:1)

默认情况下,GCC会查找C_INCLUDE_PATH和CPP_INCLUDE_PATH环境变量。 您可以将以下内容添加到.bashrc:

,而不是执行-I
export CPP_INCLUDE_PATH=/path/to/your/boost/header

答案 1 :(得分:1)

我的方式(/usr/local)我添加到全局定义的CXXFLAGS。我总是将MinGW与MSys结合使用。我更改了fstab(C:\MinGW\msys\1.0\etc\fstab)以将C:\Users映射到/home。 (那应该是默认值。)然后我在我的用户目录中定义了一个.profile文件,其中包含我的“默认”CFLAGSCXXFLAGSLDFLAGS。所以在我的情况下:

export CFLAGS=-g -Wall -I/usr/local/include
export CXXFLAGS=-g -Wall -I/usr/local/include
export LDFLAGS=/usr/local/lib

在makefile中,我只根据需要扩展变量:

LDFLAGS += -lawsomelib

这就像一个魅力,具有在特殊情况下我可以在本地重新定义CXXFLAGS的优点。基本上你应该在makefile中假设变量CC,CXX,CXXFLAGS,CFLAGS和LDFLAGS已经定义并包含有用的东西。这是便携式和标准的方式。

(注意:/usr/local未用作香草MinGW + MSys中的标准包含位置。)