【发布时间】:2017-01-18 19:54:19
【问题描述】:
在我使用 ninja 作为后端的 CMake 构建中,总是重新链接没有导出符号的 DLL,因此我将 MODULE 关键字与 add_library 用于推荐的那些 DLL here 和 @ 987654322@.
但是现在这些 DLL 没有用它们创建相应的 PDB 文件(或者它们可能是在具有默认名称的对象目录中生成的,而不是在具有库名称的输出目录中生成的)。
PDB_NAME docs 暗示它仅适用于可执行文件和共享库(未提及 MODULE):
链接器生成的 ....pdb 文件的输出名称 可执行或共享库目标。
如何获取在预期位置创建的 PDB 文件,并为 MODULE 库提供正确的名称?
【问题讨论】:
-
我的替代方案似乎是:1. 添加特定于平台的标志以生成 pdb 文件,或 2. 使用 SHARED 库类型,并向这些库添加一个虚拟导出符号,以便它们生成LIB 文件。
标签: c++ module cmake shared-libraries