4

MinGWの標準検索パスにBoostライブラリを(インクルードファイルと一緒に)インクルードして、このようなことを実行するにはどうすればよいですか。

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

C ++標準ライブラリのように、Makefileに-I、-l、および-Lを追加しないようにしますか?(私はWindows 7でコンパイルされたブースト1.51.0を使用しています)

4

2 に答える 2

2

私が(のために/usr/local)それを行う方法は、グローバルに定義された に追加しCXXFLAGSます。私は常に MinGW を MSys と組み合わせて使用​​しています。fstab( C:\MinGW\msys\1.0\etc\fstab) を にマップC:\Usersするように変更しました/home。(いずれにせよ、それがデフォルトである必要があります。)次に.profile、「デフォルト」を含むファイルをユーザー ディレクトリに定義し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これは魔法のように機能し、特別な場合にローカルで再定義できるという利点があります。基本的に、メイクファイルでは、変数 CC、CXX、CXXFLAGS、CFLAGS、および LDFLAGS が既に定義されており、有用なものが含まれていると想定する必要があります。これは移植性があり、一種の標準的な方法です。

(注:/usr/local標準の MinGW + MSys のインクルード ロケーションとしては使用されません。)

于 2012-09-11T11:20:03.453 に答える
1

デフォルトでは、GCC は C_INCLUDE_PATH および CPP_INCLUDE_PATH 環境変数を探します。-I を実行する代わりに、以下を .bashrc に追加できます。

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