linux下的Cmake运用实例与install目标文件安装命令的使用解读

cmake_minimum_required(VERSION 3.8)

project(OPT_LCD_LIB)

# 打印消息
message(${PROJECT_SOURCE_DIR})
message(${PROJECT_BINARY_DIR})

# 给文件名/路径名或其他字符串起别名,用${变量}获取变量内容
#set(变量 文件名/路径/...)
set(INSTALL_TARGET_DIR /usr/bin/)

set(SRC_LIST 
	opt_lcd_demo.cpp
)

set(LIB_LIST 
    opt_lcd.cpp
)

# 将.cpp/.c/.cc文件生成.a静态库
# 注意,库文件名称通常为libxxx.so,在这里只要写xxx即可
# add_library(库文件名称 SHARED 文件)
add_library(OPT_LCD_LIB ${LIB_LIST})

# 将.cpp/.c/.cc文件生成可执行文件
# add_executable(可执行文件名称 文件)
add_executable(opt_lcd_demo ${SRC_LIST})

#在编译可执行文件opt_lcd_demo的时候将其链接到OPT_LCD_LIB库去编译
target_link_libraries(opt_lcd_demo OPT_LCD_LIB)

#将编译出来的库文件拷贝到/usr/lib目录下
install(TARGETS OPT_LCD_LIB
	LIBRARY DESTINATION /usr/lib
)

install(TARGETS opt_lcd_demo
	RUNTIME DESTINATION /opt_test
)
MESSAGE(${CMAKE_CURRENT_SOURCE_DIR} "==CMAKE_CURRENT_SOURCE_DIR=")
MESSAGE(${CMAKE_STRIP}  "==CMAKE_STRIP")
MESSAGE(${CMAKE_C_COMPILER} "==CMAKE_C_COMPILER")

关于Cmake的install命令使用

install命令

install用于指定在安装时运行的规则。它可以用来安装很多内容,可以包括目标二进制、动态库、静态库以及文件、目录、脚本等

install(TARGETS <target>... [...])                 //目标文件的安装
install({FILES | PROGRAMS} <file>... [...])  //普通文件的安装
install(DIRECTORY <dir>... [...])                  // 目录的安装
install(SCRIPT <file> [...])                             //安装时脚本的运行
install(CODE <code> [...])
install(EXPORT <export-name> [...])

目标文件的安装 

install(TARGETS targets... [EXPORT <export-name>]
        [[ARCHIVE|LIBRARY|RUNTIME|OBJECTS|FRAMEWORK|BUNDLE|
          PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]
         [DESTINATION <dir>]
         [PERMISSIONS permissions...]
         [CONFIGURATIONS [Debug|Release|...]]
         [COMPONENT <component>]
         [NAMELINK_COMPONENT <component>]
         [OPTIONAL] [EXCLUDE_FROM_ALL]
         [NAMELINK_ONLY|NAMELINK_SKIP]
        ] [...]
        [INCLUDES DESTINATION [<dir> ...]]
        )

 参数中的TARGET可以是很多种目标文件,最常见的是通过ADD_EXECUTABLE或ADD_LIBRARY定义的目标文件,即可执行二进制、动态库、静态库

 例如:

INSTALL(TARGETS myrun mylib mystaticlib           #先用TARGETS指定出需要安装的文件
       RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

 上面的例子会将:可执行二进制myrun安装到${CMAKE_INSTALL_BINDIR}目录,动态库libmylib.so安装到${CMAKE_INSTALL_LIBDIR}目录,静态库libmystaticlib.a安装到${CMAKE_INSTALL_LIBDIR}目录。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值