CMakeList汇总

cmake_minimum_required(VERSION 2.8.3) 
PROJECT (HELLO)   #工程名

SET( MAIN_LIST main.cpp )        #定义一个变量名
#SET(MAIN_LIST "${MAIN_LIST} -std=c++11")
#add_definitions(-std=c++11) # Use C++11

MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})#显示信息
MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})#显示信息


AUX_SOURCE_DIRECTORY(src DIR_SRCS)

SET(PICAR_SERVER
    ${DIR_SRCS}
    )

ADD_EXECUTABLE(${PROJECT_NAME} ${PICAR_SERVER}) 


ADD_EXECUTABLE(hello ${MAIN_LIST} )    #hello 为编译后的目标文件名

ADD_EXECUTABLE(hello main.cpp)    #hello 为编译后的目标文件名


ADD_SUBDIRECTORY (  source_dir  [ binary_dir ]  [ EXCLUDE_FROM_ALL ] )
#向当前工程添加存放源文件的子目录   并可以指定目标二进制存放的位置  EXCLUDE参数的含义是将这个
目录从编译过程中排除,比如example,可以就工程构建完成后,单独进来构建

INCLUDE_DIRECTORIES( [AFTER|BEFORE] [SYSTEM] dir1 dir2 ... )
#向当前工程添加多个指定的头文件搜索路径,路径之间用空格分割
include_directories(
  ${catkin_INCLUDE_DIRS}
  ${PROJECT_SOURCE_DIR}/src
  ${PROJECT_SOURCE_DIR}/sdk/include
  ${PROJECT_SOURCE_DIR}/sdk/src
)


TARGET_LINK_LIBRARIES( target library1 library ... )
#添加共享库链接   可写成hello,也可写成libhello.so

#使用了外部库,事先不知道头文件和链接库的位置
find_package(<name>)    会在模块路径中寻找name.cmake。
例:fing_package(BZip2)
    if(BZIP2_FOUND)
    include_directories( ${BZIP_INCLUDE_DIR} )
    target_link_libraries( 工程名 ${BZIP2_LIBRARIES} )
    endif(BZIP2_FOUND)

find_library( libpaths libhello.so lib )


找到自定义的库,不需要安装     libpaths为变量   libhello.so为要找的库,  lib为路径

target_link_libraries( usehello ${libpaths} )





将找到的库的变量链接到工程


make clean  可对构建结果进行清理


建立共享库
SET(LIBHELLO_SRC hello.c)

ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})

ADD_LIBRARY( libname  [ SHARED|STATIC|MODULE ]  [EXCLUDE_FROM_ALL]  source1 source2 ... )
#SHARED 动态库   STATIC静态库    MODULE不常用      

INSTALL(TARGETS hello hello_static      #TARGETS为二进制、动态库、静态库
    LIBRARY DESTINATION lib    #lib为相对位置,针对于DCMAKE_INSTALL_PREFIX=/usr 下
    ARCHIVE DESTINATION lib)
#可以使用make install命令将生成的libhello.so libhello_static.a 安装到/usr/lib下。
其中ARCHIVE是静态库的关键字,LIBRARY是动态库的关键字

INSTALL(FILES hello.h DESTINATION include/hello) #FILES普通文件安装,
#可以将hello.h 安装到/usr/include/hello中

cmake -DCMAKE_INSTALL_PREFIX=/usr ..

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值