c++ - 如何在不要求任何链接文件的情况下使程序运行

标签 c++ visual-studio

当我制作一个简单的程序时 无论是 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/

相关文章:

c# - 开发 Visual Studio 加载项时,除了手动测试之外,还有哪些测试选项?

c++ - 为类的实例提供指向结构的指针

无故读取文件时跳过 C++ 行

c++ - CDT Kepler Eclipse 上的 "Launch failed. Binary not found."错误

使用 pthread 时,使用全局变量的 C++ 显示比指针慢 100%?

c# - 配置文件 'C:\my\App.Config' 用于配置所有可执行文件

c++ - 模板类的链接器错误

c# - 添加 "winmd"引用与添加项目引用

c# - 不需要的文化特定 dll 复制到 bin 目录

visual-studio - 如何在 Visual Studio 2019 上使用 Bootstrap 5 和 Sass