本文将介绍cmak引入第三方库debug和release不同配置。Windows上,习惯将debug模式下生成的动态库名后缀添加D 以作和release区分。cmake创建一个项目A,A引入动态库B,cmake怎么配置A链接动态库B的debug和release对应的库呢 本文的教程是基于 这里, 如果没有看,我推荐你先看下,再阅读本文。 核心函数 target_link_libra...
在这种情况下,就可以通过 CMake 的两个关键字debug和optimized来区分配置,在 Debug 编译时链接库msvcrtd.lib,在 Release 编译时链接库msvcrt.lib。 示例: set(target_name Demo) # 区分 debug 和 release 下不同的链接库target_link_libraries(${target_name} PUBLIC debug msvcrtd.lib optimized msvcrt.lib) 2...
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") MESSAGE (STATUS "current is Debug mode") SET (EXECUTABLE_OUTPUT_PATH /tmp/c/2019-09-12-cmaketest/test11/build/Debug) ENDIF () # 如果是Debug模式,那么将可执行程序生成到build下的Release目录中 if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")...
target_link_libraries(ARSDK PRIVATE ${EXTERNAL_ROOT}/lib/libprotobuf$<$<CONFIG:Debug>:d>.lib ...
CMakeCache.txt:CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUGCMakeCache.txt:CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUGCMakeFiles/main.dir/flags.make:CXX_FLAGS = -O3 -Wall CMakeFiles/main.dir/link.txt:/usr/bin/c++ -O3 -Wall CMakeFiles/main.dir/main.cpp.o -o main -rdynamic CMakeList...
先说,自己编写的工程,工程直接的相互调用,这个就不用多说了。Cmake还是要调用target_link_libraries来链接自己的想要链接的动态库。 但是需用做些设置,就可以自动的区分debug和release版本了。 首先,需实现cmake定义如下: #这个就是定义各个版本对应的后缀,例如d,debug版本后缀,当然你想定义为其他, #自己修改这块就...
REQUIRED)if(${CMAKE_BUILD_TYPE})set(OSG_BUILD_PATH $<IF:$<STREQUAL:${CMAKE_BUILD_TYPE},"Debug">,${OSG_DEBUG_PATH},${OSG_RELEASE_PATH}>)else()message(STATUS"multi-config generators")set(OSG_BUILD_PATH $<IF:$<CONFIG:Debug>,${OSG_DEBUG_PATH},${OSG_RELEASE_PATH}>)endif()link_di...
6.0的机器上也能运行。而Debug版本的exe链接了调试版本的MFC DLL文件,比如MFC42.DLL。在没有安装Visual C++ 6.0的机器上不能运行,因为缺少MFC42D.DLL等,除非选择use static dll when link。Debug版本中包含大量的调试信息,所以我们能够单步执行、Watch表达式等等,而release版本仅包含我们的代码。由于...
# 区分动态库的debug和release target_link_libraries ( ${PROJECT_NAME} PRIVATE debug ${calc_LIBRARY_debug} optimized ${calc_LIBRARY_release} )就这⼀句,是不是简单到爆炸。其中。${calc_LIBRARY_debug} 是动态库debug模式下的绝对路径。同理, ${calc_LIBRARY_release}是动态库release模式下的绝对路径...