gpt4 book ai didi

c++ - LNK1104 无法使用visual studio 2008命令提示符打开boost静态库

转载 作者:行者123 更新时间:2023-11-28 07:34:28 26 4
gpt4 key购买 nike

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

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

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

错误是:

LINK: fatal error LNK1104:无法打开文件“libboost_system-vc90-mt-s-1_53.lib”

但是,可以在“C:\Program Files\boost\boost_1_53_0\stage\lib”中找到“libboost_system-vc90-mt-s-1_53.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"客户端。 cpp

返回不同的错误:cl:命令行错误 D8003:缺少源文件名

我似乎错误地调用了编译器标志?但我看不到在哪里/如何。

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

提前感谢您的帮助!

最佳答案

链接器需要被告知库文件的位置。您与最后一个命令行非常接近,但文件名需要位于 /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\stage\lib\"

关于c++ - LNK1104 无法使用visual studio 2008命令提示符打开boost静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17017041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com