如何在 MinGW 的标准搜索路径中包含 Boost 库(连同它的包含文件),以便我可以做这样的事情;
#include <filesystem.hpp>
using boost::filesystem;
并避免在 Makefile 中添加 -I、-l 和 -L,就像 C++ 标准库一样?(我在 Windows 7 上使用已编译的 boost 1.51.0)
我这样做的方式(对于/usr/local
)我添加到我的全局定义CXXFLAGS
的 . 我总是将 MinGW 与 MSys 结合使用。我将 fstab( C:\MinGW\msys\1.0\etc\fstab
) 更改为映射C:\Users
到/home
. (无论如何这应该是默认值。)然后我在我的用户目录中定义一个文件,.profile
其中包含我的 "default"CFLAGS
和. 所以在我的情况下:CXXFLAGS
LDFLAGS
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
在 vanilla MinGW + MSys 中不作为标准包含位置。)
默认情况下,GCC 会查找 C_INCLUDE_PATH 和 CPP_INCLUDE_PATH 环境变量。您可以将以下内容添加到您的 .bashrc 中,而不是执行 -I:
export CPP_INCLUDE_PATH=/path/to/your/boost/header