如何将visual studio 2010解决方案构建为独立的dll

How to build a visual studio 2010 solution into a standalone dll?

本文关键字:构建 独立 dll 解决方案 2010 visual studio      更新时间:2023-10-16

我有一个visual studio 2010项目,使用静态和动态库(.lib.dll),该项目在发布和调试模式下都被成功编译和构建为.exe,代码为c和c++。

将所有解决方案编译并包装为一个独立的.dll文件的正确方法是什么。

我想要一个dll文件,我可以安全地将其加载到其他c,c++,c#项目中。

在我的情况下,我想在teratent和其他简单的自行开发的c#应用程序中加载它。

Visual Studio有一个名为"链接库依赖项"的C++链接器选项:http://msdn.microsoft.com/en-us/library/024awkd1(v=vs.90).aspx

这将把解决方案中所有项目的对象文件直接链接到项目输出中(通过依赖项跟踪)。但是,当你使用这个时要小心,如果你在EXE和你链接的DLL中使用这个导出符号,你的EXE也会导出它们。

更新:

这里有更多的细节:发生的情况是,链接器没有链接DLL(这假设你有你想链接的DLL在解决方案中被设置为项目的依赖项)来生成单独的二进制文件,而是从每个单独的项目依赖项中获取输出,并将它们直接链接到最终的可执行文件/DLL中,从而创建了一个单片DLL。

一个副作用是(取决于代码)输出的总体大小减少了一点,整体DLL(或EXE)通常可能很大,但由于链接时间优化,其大小小于单个输出文件的总和。链接对象导出的任何符号都将由最终DLL导出,因为它们在编译步骤中被标记为这样。

可能有一个陷阱,但在VS2010中,您只需点击启动项目,选择"属性"->"配置属性"->"常规"->"配置类型"->将其设置为"动态库(dll)"