如何在其他计算机上部署用visual studio编写的简单boost程序

how to deploy simple boost program written in visual studio on other computers

本文关键字:studio 简单 程序 boost visual 其他 计算机 部署      更新时间:2023-10-16

我用c++写了一个简单的程序,它使用boost文件系统库来组织一些文件。我正在使用Visual Studio 2013 Express for Windows Desktop IDE。我希望我的程序可以在没有安装程序或其他任何东西的情况下在其他计算机上运行。用户应该能够下载程序并点击它。

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

Error 1 Error LNK1104: cannot open file"libboost_filesystem-vc120-mt-s-1_55。lib’C:UsersinspectionDesktopsortFileProject1Project1LINK Project1

我查看了下面的文件夹:

C: Program Files 促进 boost_1_55_0 libs 释放文件系统制造 msvc - 12.0 环静止 threading-multi

找不到 libboost_filessystem -vc120-mt-s-1_55。lib,虽然我可以找到 libboost_filessystem -vc120-mt-1_55.lib。文件名很接近,它们只是在'-mt'项后面有一个'-s'项。

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

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