4

如何在 MinGW 的标准搜索路径中包含 Boost 库(连同它的包含文件),以便我可以做这样的事情;

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

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

4

2 回答 2

2

我这样做的方式(对于/usr/local)我添加到我的全局定义CXXFLAGS的 . 我总是将 MinGW 与 MSys 结合使用。我将 fstab( C:\MinGW\msys\1.0\etc\fstab) 更改为映射C:\Users/home. (无论如何这应该是默认值。)然后我在我的用户目录中定义一个文件,.profile其中包含我的 "default"CFLAGS和. 所以在我的情况下:CXXFLAGSLDFLAGS

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 中不作为标准包含位置。)

于 2012-09-11T11:20:03.453 回答
1

默认情况下,GCC 会查找 C_INCLUDE_PATH 和 CPP_INCLUDE_PATH 环境变量。您可以将以下内容添加到您的 .bashrc 中,而不是执行 -I:

export CPP_INCLUDE_PATH=/path/to/your/boost/header
于 2012-09-11T10:40:48.140 回答