1、方法1
CMakeLists.txt增加如下代码(假定工程名为hello,动态库名为libsub.so)
set(CMAKE_STRIP "strip")
project(hello)
……
add_subdirectory(sub)
……
target_link_libraries( ${PROJECT_NAME} sub)
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_STRIP} "$<TARGET_FILE:${PROJECT_NAME}>"
COMMENT "Strip debug symbols done on final binary.")
其中set(CMAKE_STRIP "strip")和add_custom_command是关键
如果是嵌入式系统,CMAKE_STRIP需要这只为对应的交叉编译工具链对应的strip
2、方法2
CMakeLists.txt增加如下代码(利用了gcc编译器的-s选项)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
set(CMAKE_BUILD_TYPE "RELEASE")
本文介绍了两种使用CMake在构建工程时删除调试符号的方法。方法1通过CMake的add_custom_command配合strip工具,方法2则利用gcc的-s编译选项。这两种方法对于优化嵌入式系统的体积尤其重要。
1486

被折叠的 条评论
为什么被折叠?



