如何重用静态库代码,这些代码已经链接到visual studio 2010中的另一个c++应用程序的DLL中
How to reuse static library code which is already linked into a DLL with another C++ application in visual studio 2010?
我正在Visual Studio 2010中开发一个c++解决方案。我有一个DLL文件,它使用一些标准的c++库函数(如字符串或文件函数)。由于一些可移植性的原因,我不得不用/MT
选项编译这个DLL,所以所有需要的运行时库函数将链接到发布的DLL文件。
我有另一个c++项目,这是一个windows应用程序,这个项目也用/MT
选项编译,并生成一个独立的exe文件。第二个项目也使用了相同的标准c++库函数,这些函数已经链接在我的DLL中(可执行文件也使用了一些DLL导出的方法)。
现在这是我的问题:有没有办法告诉链接器,不链接常见的运行时函数已经链接到DLL文件&不要链接这些共享部分再次在exe文件(例如重用相同的代码字符串函数已经链接到我的DLL)?
不,你不能那样做。虽然可执行文件依赖于DLL,但它们仍然可以被视为独立的、独立的二进制工件,每个工件都应该包含正确执行所需的符号。
这是首选动态链接的原因之一。此外,我不认为动态链接和重新分发运行时与应用程序有任何问题。
虽然Microsoft Visual C Runtime包含在大多数平台上,但它有许多不同的版本,其中一些是错误的或/和打破向后兼容性。因此,分发msvcr*.dll
的版本总是一个好主意,你知道你的应用程序肯定工作。
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- Android Studio 中带有静态库的原生C++代码
- 如何在 Android Studio 4 中编译 C/C++ 原生代码
- 编译并运行后,输出未出现在 Visual Studio 代码中
- 找不到Linux Visual Studio代码C++文件
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 为c++配置Visual studio代码
- Visual Studio 中是否有来自代码块的编译器标志的类似物?
- 代码在Visual Studio 2017中不起作用,但在VS代码中工作
- 默认/样板代码在Visual Studio 2017中给我错误.E1574.虚幻.但构建成功了
- 更改 git 分支名称后,在项目的 Visual Studio 代码中丢失智能感知(建议,转到定义C++
- 无法在 Visual Studio 代码中生成和运行 C++ 代码
- Visual Studio 发布模式阻止在调试模式下执行的代码.使用 WinHTTP 和多线程
- 使用Visual Studio 2012编译时,此代码会给我错误,但是使用代码块就可以了
- 如何在不进入 Visual Studio 2015 中的外部库的情况下单步执行我的代码 (F11)
- 用于验证 Visual Studio 一致性开关对生成的代码的影响的工具
- 链接Visual Studio代码中的GLFW
- Visual Studio Community 代码分析的质量与 SAL 注释
- 使用 Visual Studio 代码读取 C++ 中的输入流时出错