我有一个用C++编写的库(我有它的完整源代码)。由于其LGPL许可证,我只能通过动态链接(静态链接可以正常工作)将其与我公司的专有软件一起使用。所以,我需要将它构建到一个DLL中。但是,库很大,不会导出任何内容(因此在类和全局函数名称前面没有.def文件和__declspec(dllexport)统计信息)。所以,当我构建一个dll时,它没有用,因为它没有导出名称,所以它不会链接。 在我们公司,我们使用的是MS Visual C++,默认情况下 不会导出名称(例如,当通过Windows上的MINGW运行时,GNU GCC)。因此,我目前看到的唯一选择是将__declspec(dllexport)放在我正在使用的库中的每个名称前面(并且有数千个),或者为这些名称编写一个.def文件。但即使我这样做了,我也无法使用该库的下一个版本,因为我必须再次完成这项工作。我正在寻找一个工具来执行这些导出操作,或者生成一个.map文件,但是没有一个真正执行这个特定的任务 (有一些DEF生成器,但它们大多搜索DUMPBIN/EXPORT的结果,在我的情况下,它没有提供任何结果) 。我在网上搜索了两天的答案,但没有好的结果。如何自动导出在DLL中使用的C++源名称
最好的问候, 舍甫琴科
.map file?我认为VS可以生成.map文件。 – fefe 2012-01-03 14:39:35
可能的重复:http://stackoverflow.com/questions/225432/export-all-symbols-when-creating-a-dll – Asaf 2012-01-03 15:20:26
你确定LGPL不允许你静态链接库吗?这不是我的理解。 (有一件事,LGPL发明之前*动态链接被发明之前?) – 2012-01-05 01:00:31