LINK1104无法使用visual studio 2008命令提示符打开boost静态库

时间:2013-06-10 04:49:04

标签: c++ visual-studio-2008 boost

我正在尝试编译一个使用静态boost库的cpp文件。我正在使用visual studio 2008命令提示符,因为我还没有设置VS项目文件。

我正在使用的命令是(从包含我的源代码的文件夹中运行):

cl /EHsc /I "C:\Program Files\boost\boost_1_53_0" Client.cpp

错误是:

LINK: fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-s-1_53.lib'

但是,文件'libboost_system-vc90-mt-s-1_53.lib'可以在“C:\ Program Files \ boost \ boost_1_53_0 \ stage \ lib”中找到,所以我的理解是我已经正确安装了boost而我只是没有链接到它?

我尝试直接使用

包含它

cl /EHsc /I"C:\Program Files\boost\boost_1_53_0" /I "C:\Program Files\boost\boost_1_53_0\stage\lib\" Client.cpp 这给出了同样的错误。

我也尝试使用/ link直接链接到它,如下所示: cl /EHsc /I"C:\Program Files\boost\boost_1_53_0" /link "C:\Program Files\boost\boost_1_53_0\stage\lib\libboost_system-vc90-mt-s-1_53.lib" Client.cpp

返回不同的错误: cl : Command line error D8003 : missing source filename

我好像在调用编译器标志错了?但我看不到在哪里/如何。

有一个类似的问题here,但解决方案涉及如何设置visual studio /项目文件的问题。由于我没有项目文件,是否有一个我无法看到的上述简单解决方案,或者我是否需要设置项目?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

需要告知链接器库文件的位置。您与最后一个命令行非常接近,但文件名需要在/link选项之前。这应该有效:

  

cl / EHsc / I“C:\ Program Files \ boost \ boost_1_53_0”Client.cpp / link“C:\ Program Files \ boost \ boost_1_53_0 \ stage \ lib \ libboost_system-vc90-mt-s-1_53.lib “

此外,当链接到同一目录中的多个库时,使用LIBPATH选项告诉链接器在哪里查找 .lib 文件更简洁。

  

cl / EHsc / I“C:\ Program Files \ boost \ boost_1_53_0”Client.cpp / link“libboost_system-vc90-mt-s-1_53.lib”/ LIBPATH:“C:\ Program Files \ boost \ boost_1_53_0 \阶段\ lib中\“