我有一个 Visual Studio 2010 项目,使用静态和动态库(.lib
和),该项目在发布和调试模式下都.dll
成功编译和构建,代码是 c 和 c++。.exe
将所有解决方案编译和包装到一个独立.dll
文件的正确方法是什么。
我想要一个 dll 文件,我可以将它安全地加载到其他 c、c++、c# 项目中。
就我而言,我想将它加载到teraterm和其他简单的自行开发的 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 中,您应该只需单击启动项目,选择 'properties' -> 'configuration properties' -> 'general' -> 'configuration type' -> 将其设置为 'dynamic library ( dll)'