c – 如何在其他计算机上部署Visual Studio中编写的简单boost程序

我在C中编写了一个简单的程序,它使用boost文件系统库来组织一些文件.我正在使用Visual Studio 2013 Express for
Windows桌面IDE.我想我的程序在没有安装程序或其他任何东西的情况下在其他计算机上运行.用户应该只需下载程序并单击它.

我在发布模式下构建了我的程序,它可以在我的计算机上运行.当我尝试在另一台计算机上部署时,我得到的错误是MSVCP120.dll丢失.为了解决这个问题,我右键单击了我的项目,单击了属性,然后单击配置属性> C/C++>代码生成,我将运行时库从多线程DLL(/ MD)更改为多线程(/ MT).现在我的程序因为这个构建错误而无法正确编译:

Error 1 error LNK1104: cannot open file
‘libboost_filesystem-vc120-mt-s-1_55.lib’ C:\Users\inspection\Desktop\sortFile\Project1\Project1\LINK Project1

我查看了以下文件夹:

C:\Program Files\boost\boost_1_55_0\libs\filesystem\build\msvc-12.0\release\link-static\threading-multi

我找不到libboost_filesystem-vc120-mt-s-1_55.lib,虽然我可以找到libboost_filesystem-vc120-mt-1_55.lib.文件名很接近,它们仅在’-mt’术语后面的’-s’术语不同.

如何静态链接boost文件系统库,以便我的整个程序作为独立的可执行文件运行,而无需其他用户安装任何东西?

最佳答案 需要重新编译Boost以匹配新的运行时库设置. Boost库的文件名表示与其链接的设置,Boost自动链接代码自动更新所需的文件名以匹配您的新设置.在这种情况下,它非常准确地表明您需要一个使用静态stdlib链接编译的Boost库.

点赞