所以我编译了一个C ++代码,它使用Visual Studio 2012中的Boost库(如果这很重要),目前正在使用Windows在不同的机器上测试可执行文件。在某些情况下,它可以正常工作,但在其他情况下,它会发出一个错误,它无法找到MSVCP110D.dll,因此无法运行。有没有其他方法可以让它运行创建一个包含DLL的安装程序?我可以以某种方式将DLL编译成我的可执行文件,以便它甚至在没有适当库的机器上运行吗?
答案 0 :(得分:2)
您正在链接调试CRT。将其更改为版本1,然后您可以在安装过程中重新分发所需的DLL(使用调试版本执行此操作是不合法的)
答案 1 :(得分:2)
MSVCP110D.dll是一个运行时库。您可以静态链接到运行时库。转到Project Properties
- > Configuration Properties
- > C/C++
- > Code Generation
并在发布模式下将Runtime Library
设置为/ MT,在调试模式下将/ MTd设置为模式。或者,请确保安装程序包中包含Visual Studio 2012 redistributable。
答案 2 :(得分:0)
您可以静态链接它。我不确定Microsoft Visual Studio,但使用GCC,您可以使用-static
选项。
答案 3 :(得分:0)
将您的DLL代码编译为静态库(LIB文件),并将EXE与之链接。
答案 4 :(得分:0)
我知道您希望避免使用安装程序,但是您是否知道这个免费,功能强大且易于使用的安装程序:NSIS(由编写WinAmp的相同人员制作)
Here are other choices。也许你可以找到一个让它变得容易(价格合适)的东西,你可能会改变主意,不想使用它。