我正在尝试遵循现代的cmake路径,并使用find_packages()/ link库方式。
我正在使用一种测试方案,其中: LIB_B取决于LIB_A,EXEC_A取决于两者。
我想知道如何将EXEC_A链接到LIB_B的调试库版本和LIB_A的发行版,反之亦然。
在LIB_A上,我正在使用set(CMAKE_DEBUG_POSTFIX "-debug")
,因此在制作调试树时,我的LIB_A将成为LIB_A-debug。我将它们安装在/ usr / local / lib中,并且都驻留在那里。
例如,假设我在LIB_A中有以下代码行:
#ifdef Release
printf("THIS IS RELEASE MODE");
#endif
这将区分LIB_A和LIB_A-调试。
在EXEC_A中,我会使用
find_package(LIBA REQUIRED)
add_executable(EXEC_A main.cpp)
target_link_libraries(EXEC_A PUBLIC LIBS::LIBA LIBS::LIBB)
假设我已将库导出到LIBS命名空间中。
有什么方法可以区分库的版本吗?
编辑:我在Linux(centos)上并使用GCC8。我的CMake版本是3.14