【问题标题】:CMake link Release library to Debug targetCMake 将发布库链接到调试目标
【发布时间】:2021-06-16 07:53:23
【问题描述】:

我有一个名为 a.lib 的导入库,它是从另一个我没有源代码的项目中导入的。

a.lib 是使用 CMake 发布模式生成的。

现在,我想生成目标 b 并将 a 链接到 by

add_executable(b ${SOURCES})
target_include_directories(b ${HEADERS})
target_link_libraries(b PRIVATE a.lib)

但是目标 'b' 应该在调试模式下包含它的符号,以便我可以逐行调试它。

如何将它们链接在一起?

似乎 Cmake 不允许我将 Debug 目标与 Release lib 链接。

【问题讨论】:

  • It seems Cmake does not allow me to link Debug target with Release lib. 请更具体。当你这样做时会发生什么? cmake怎么不允许你做呢?

标签: c cmake


【解决方案1】:

所以在可执行文件中添加调试标志。

 target_compile_options(b PRIVATE ${CMAKE_C_DEBUG_FLAGS})

或者可能是 CMAKE_C_DEBUG_FLAGS_INIT 或从您的库中取消这些标志(如 -g0)。

您始终可以在两个单独的 cmake 项目中编译您的库和可执行文件,然后使用脚本或 ExternalProject_Add 链接它们

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    相关资源
    最近更新 更多