CMake教程12-打包调试与发布

CMake教程12-打包调试与发布

调试版本通常对于查找应用程序coredump等异常是非常有必要的,可以使用调试工具跟踪查看具体的错误位置,从而快速修复问题。

默认情况下,CMake是单配置模型,我们可以通过CPack实现多配置,生成调试版本与Release版本。

首先我们设置调试版本的后缀为d,例如first_appd,具体设置在CMakeLists.txt文件:

set(CMAKE_DEBUG_POSTFIX d)

add_executable(first_app hello.cpp)

set_target_properties(first_app PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX})

func/CMakeLists.txt中添加库版本信息:

set_property(TARGET myfunc PROPERTY VERSION "1.0.0")
set_property(TARGET myfunc PROPERTY SOVERSION "1")

现在,我们开始构建debug调试版本与release版本,执行命令:

mkdir debug release
cd debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .

cd ../release
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .

最后,还可以通过配置将调试版与正式版一起打包,具体配置如下:

新建MultiCPackConfig.cmake文件,内容如下:

include("release/CPackConfig.cmake")

set(CPACK_INSTALL_CMAKE_PROJECTS
    "debug;first_app;ALL;/"
    "release;first_app;ALL;/"
    )

然后,执行打包命令:

cpack --config MultiCPackConfig.cmake

打包后的目录结构如下:

FirstProject--Linux
├── bin
│   ├── first_app
│   └── first_appd
├── include
│   ├── config.h
│   └── myfunc.h
└── lib
    ├── cmake
    │   └── MyFunc
    │       ├── MyFuncConfig.cmake
    │       ├── MyFuncConfigVersion.cmake
    │       ├── MyFuncTargets.cmake
    │       ├── MyFuncTargets-debug.cmake
    │       └── MyFuncTargets-release.cmake
    ├── libmyfuncd.so -> libmyfuncd.so.1
    ├── libmyfuncd.so.1 -> libmyfuncd.so.1.0.0
    ├── libmyfuncd.so.1.0.0
    ├── libmyfunc.so -> libmyfunc.so.1
    ├── libmyfunc.so.1 -> libmyfunc.so.1.0.0
    └── libmyfunc.so.1.0.0

转载本文时请注明出处及本文链接地址CMake教程12-打包调试与发布

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注