posts - 570,  comments - 96,  views - 171万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1、使用Release模式

set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
set(CMAKE_BUILD_TYPE "RELEASE")

 

2、使用strip命令删除调试信息等

set(CMAKE_STRIP "strip")
add_custom_command(TARGET  ${PROJECT_NAME} POST_BUILD
        COMMAND ${CMAKE_STRIP} "$<TARGET_FILE:${PROJECT_NAME}>"
        COMMENT "Strip debug symbols done on final binary.")

 

例如一个HelloWorld程序的原CMakeLists.txt没优化前如下

cmake_minimum_required(VERSION 3.20)
project(HelloWorld)

set(CMAKE_CXX_STANDARD 17)

add_executable(HelloWorld HelloWorld.cpp)

优化前文件体积3183KB

优化后

复制代码
cmake_minimum_required(VERSION 3.20)
project(HelloWorld)

set(CMAKE_STRIP "strip")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
set(CMAKE_BUILD_TYPE "RELEASE")
set(CMAKE_CXX_STANDARD 17)

add_executable(HelloWorld HelloWorld.cpp)
add_custom_command(TARGET  ${PROJECT_NAME} POST_BUILD
        COMMAND ${CMAKE_STRIP} "$<TARGET_FILE:${PROJECT_NAME}>"
        COMMENT "Strip debug symbols done on final binary.")
复制代码

优化后体积912KB,当然如果你如果需要保留exe文件调试信息,请酌情使用RELEASE

 

转载自:cmake学习之使用strip减少动态库的大小_cmake strip_RoadingAnt的博客-CSDN博客

其他参考:cmake/gcc:strip缩减程序体积_cmake strip_10km的博客-CSDN博客

posted on   你不知道的浪漫  阅读(681)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示