【问题标题】:CMake add_library using the MODULE keyword doesn't create PDB file使用 MODULE 关键字的 CMake add_library 不会创建 PDB 文件
【发布时间】: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


【解决方案1】:

我重新使用 SHARED 库并添加了一个虚拟符号以从每个此类库中导出。这样,cmake 文件与所有其他库保持一致。

【讨论】:

    猜你喜欢
    • 2013-02-03
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2015-03-26
    • 1970-01-01
    • 2021-12-03
    相关资源
    最近更新 更多