随笔 - 100  文章 - 0  评论 - 6  阅读 - 87704

CMakeLists --- install和uninstall

install

假设生成了以下几个文件:静态库target1,动态库target2,可执行文件target3

 

1.安装文件至指定位置

复制代码
#只安装静态库
install(TARGETS target1
  LIBRARY DESTINATION lib
)

#安装静态库,动态库,可执行文件
install(TARGETS target1 target2 target3 
LIBRARY DESTINATION lib 
ARCHIVE DESTINATION lib 
RUNTIME DESTINATION bin 
)
复制代码

2.安装文件夹至指定位置

假设头文件文件夹位于CMakeList.txt同路径下include/${PROJECT_NAME}和test,安装至指定位置下的include文件夹

复制代码
install(DIRECTORY include/${PROJECT_NAME}/ test/
    DESTINATION include/${PROJECT_NAME} 
    FILES_MATCHING 
    PATTERN "*.h"          # 匹配.h文件
    PATTERN "*.hpp"        # 匹配.hpp文件
    PATTERN ".svn" EXCLUDE # 排除.svn文件
)
复制代码

默认情况下上述所有文件会安装至/usr/local下,如果要修改安装位置需要在install前

set(CMAKE_INSTALL_PREFIX "/home/test/xxx")

使用install

sudo make install

uninstall

在CMakeList.txt同路径下执行,会删除所有安装的文件,但是空文件夹会保留

cat install_manifest.txt | sudo xargs rm

要求build文件夹存在且install_manifest.txt文件夹还在
如果没有需要先编译安装后再卸载

原文链接:https://www.cnblogs.com/umichan0621/p/16805541.html

posted on   林西索  阅读(777)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2021-05-31 为什么必须在主线程操作UI
2021-05-31 Windows PE文件格式解析
< 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

点击右上角即可分享
微信分享提示