【发布时间】:2010-10-03 00:28:12
【问题描述】:
我无法让我的项目链接到 Microsoft Visual C++ 2008 Express Edition 中的 Boost(版本 1.37.0)文件系统 lib 文件。文件系统库不是一个仅头文件的库。我一直在关注官方 boost 网页上发布的 Getting Started on Windows 指南。以下是我采取的步骤:
-
我使用 bjam 构建了完整的 lib 文件集:
bjam --build-dir="C:\Program Files\boost\build-boost" --toolset=msvc --build-type=complete 我将 /libs 目录(位于 C:\Program Files\boost\build-boost\boost\bin.v2)复制到 C:\Program Files\boost\boost_1_37_0\libs.
-
在 Visual C++ 中,在 Project > Properties > Additional Library Directories 下我添加了这些路径:
- C:\Program Files\boost\boost_1_37_0\libs
- C:\Program Files\boost\boost_1_37_0\libs\filesystem\build\msvc-9.0express\debug\link-static\threading-multi
我绝望地添加了第二个。它是 libboost_system-vc90-mt-gd-1_37.lib 所在的确切目录。
-
在 Configuration Properties > C/C++ > General > Additional Include Directories 我添加了以下路径:
- C:\Program Files\boost\boost_1_37_0
然后,为了锦上添花,在 Tools > Options VC++ Directories > Library files 下,我添加了步骤 3 中提到的相同目录。
尽管如此,当我构建我的项目时,我收到以下错误:
fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-gd-1_37.lib'
此外,这里是我试图编译的代码以及上述(假定正确的)lib 文件所在目录的屏幕截图:
#include "boost/filesystem.hpp" // includes all needed Boost.Filesystem declarations
#include <iostream> // for std::cout
using boost::filesystem; // for ease of tutorial presentation;
// a namespace alias is preferred practice in real code
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}
【问题讨论】:
标签: c++ visual-c++ boost filesystems linker