当我制作一个简单的程序时 无论是 Console 还是 win32 当我将程序复制到其他 pc 或其他 os 时给我一个错误信息,必须有特定的 dll 或 lib 文件才能使程序工作。
示例: 我创建了一个简单的控制台程序,当它在其他 Windows 或其他 PC 上运行时询问我程序运行所需的文件(msvcp100d.dll、msvcr100d.dll)。
我的问题: 我如何在任何 PC 或 Windows 上运行该程序而不询问任何文件链接,甚至文件库或其他。
注意:我在 Windows 7 上使用 visual studio 2010 express edition。
最佳答案
这并不总是一个好主意,对于某些库,您可能会遇到许可问题,但您可以静态链接所有内容,而不是动态链接。
例如,对于 MS C/C++ 运行时库(msvcp100d.dll、msvcr100d.dll),您可以在 Visual Studio 中更改设置。打开项目属性,然后转到: 配置属性 -> C/C++
将“运行时库”更改为:
Multi-threaded Debug (/MTd) // for a Debug build, and to
Multi-threaded (/MT) // for a Release build
然后,只需重新构建您的项目,它就不会再请求那些库了。 至于第三方库,你必须有库的静态构建(只有 .lib 文件,而不是动态的 lib/dll 对)。此外,静态库本身必须静态链接到 msvcp100d.dll 和 msvcr100d.dll。 一旦满足所有这些条件,您只需链接那些 lib 文件,您的可执行文件就不会要求 dll。
关于c++ - 如何在不要求任何链接文件的情况下使程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789679/