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 ..

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM