cmake 頭文件文件

      網友投稿 1252 2025-04-05

      頭文件目錄:CMake include_directories


      CMake_install_prefix? ? ??好像也是頭文件的根目錄

      CMake支持大寫、小寫、混合大小寫的命令。

      1. 添加頭文件目錄INCLUDE_DIRECTORIES

      語法:

      include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])

      它相當于g++選項中的-I參數的作用,也相當于環境變量中增加路徑到CPLUS_INCLUDE_PATH變量的作用。

      include_directories(../../../thirdparty/comm/include)

      2. 添加需要鏈接的庫文件目錄LINK_DIRECTORIES

      語法:

      link_directories(directory1 directory2 ...)

      它相當于g++命令的-L選項的作用,也相當于環境變量中增加LD_LIBRARY_PATH的路徑的作用。

      link_directories("/home/server/third/lib")

      3. 查找庫所在目錄FIND_LIBRARY

      語法:

      A short-hand signature is: find_library ( name1 [path1 path2 ...]) The general signature is: find_library ( name | NAMES name1 [name2 ...] [NAMES_PER_DIR] [HINTS path1 [path2 ... ENV var]] [PATHS path1 [path2 ... ENV var]] [PATH_SUFFIXES suffix1 [suffix2 ...]] [DOC "cache documentation string"] [NO_DEFAULT_PATH] [NO_CMAKE_ENVIRONMENT_PATH] [NO_CMAKE_PATH] [NO_SYSTEM_ENVIRONMENT_PATH] [NO_CMAKE_SYSTEM_PATH] [CMAKE_FIND_ROOT_PATH_BOTH | ONLY_CMAKE_FIND_ROOT_PATH | NO_CMAKE_FIND_ROOT_PATH] )

      例子如下:

      FIND_LIBRARY(RUNTIME_LIB rt /usr/lib /usr/local/lib NO_DEFAULT_PATH)

      cmake會在目錄中查找,如果所有目錄中都沒有,值RUNTIME_LIB就會被賦為NO_DEFAULT_PATH

      4.?添加需要鏈接的庫文件路徑LINK_LIBRARIES

      語法:

      link_libraries(library1 library2 ...)

      # 直接是全路徑 link_libraries(“/home/server/third/lib/libcommon.a”)

      # 下面的例子,只有庫名,cmake會自動去所包含的目錄搜索 link_libraries(iconv) # 傳入變量 link_libraries(${RUNTIME_LIB})

      # 也可以鏈接多個 link_libraries("/opt/MATLAB/R2012a/bin/glnxa64/libeng.so" "/opt/MATLAB/R2012a/bin/glnxa64/libmx.so")

      可以鏈接一個,也可以多個,中間使用空格分隔.

      5.?設置要鏈接的庫文件的名稱TARGET_LINK_LIBRARIES

      語法:

      target_link_libraries( [item1 [item2 [...]]] [[debug|optimized|general] ] ...)

      # 以下寫法都可以: target_link_libraries(myProject comm) # 連接libhello.so庫,默認優先鏈接動態庫 target_link_libraries(myProject libcomm.a) # 顯示指定鏈接靜態庫 target_link_libraries(myProject libcomm.so) # 顯示指定鏈接動態庫 # 再如: target_link_libraries(myProject libcomm.so)  #這些庫名寫法都可以。 target_link_libraries(myProject comm) target_link_libraries(myProject -lcomm)

      6. 為工程生成目標文件 語法:

      add_executable( [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] source1 [source2 ...])

      簡單的例子如下:

      add_executable(demo main.cpp )

      cmake 頭文件 庫文件

      6. 最后貼一個完整的例子

      cmake_minimum_required (VERSION 2.6) INCLUDE_DIRECTORIES(../../thirdparty/comm) FIND_LIBRARY(COMM_LIB comm ../../thirdparty/comm/lib NO_DEFAULT_PATH) FIND_LIBRARY(RUNTIME_LIB rt /usr/lib /usr/local/lib NO_DEFAULT_PATH) link_libraries(${COMM_LIB} ${RUNTIME_LIB}) ADD_DEFINITIONS( -O3 -g -W -Wall -Wunused-variable -Wunused-parameter -Wunused-function -Wunused -Wno-deprecated -Woverloaded-virtual -Wwrite-strings -D__WUR= -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DTIXML_USE_STL ) add_library(lib_demo cmd.cpp global.cpp md5.cpp ) link_libraries(lib_demo) add_executable(demo main.cpp ) # link library in static mode target_link_libraries(demo libuuid.a)

      另外,使用cmake生成makefile之后,make edit_cache可以編輯編譯選項。 不熟悉的命令可以去查找文檔,貼個cmake3.0官方幫助文檔地址 https://cmake.org/cmake/help/v3.0/index.html ============================================== 最近在搭建自己的博客,歡迎來逛。 https://sharebook.wang

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:驚喜來襲—歡迎“網絡設備開放社區”加入數通大家庭!
      下一篇:一個工作簿中有多頁表格,怎么從第二頁起向后自動連續排頁碼?
      相關文章
      亚洲免费日韩无码系列| 国产成人精品日本亚洲语音 | 自拍偷自拍亚洲精品第1页| 国产成人人综合亚洲欧美丁香花| 亚洲男人的天堂网站| 亚洲熟女综合一区二区三区| 亚洲av无码国产综合专区| 亚洲午夜精品一区二区公牛电影院| 亚洲视频一区在线| 亚洲精品国产福利在线观看| 久久99亚洲网美利坚合众国| 在线观看亚洲一区二区| 亚洲美女大bbbbbbbbb| 亚洲狠狠狠一区二区三区| 亚洲国产成+人+综合| 亚洲一级毛片免观看| 成人亚洲国产va天堂| 亚洲偷偷自拍高清| 亚洲国产精品ⅴa在线观看| 久久精品国产亚洲AV未满十八| 国产成人亚洲精品播放器下载 | 亚洲国产精品嫩草影院在线观看 | 亚洲国产欧美日韩精品一区二区三区| 亚洲色成人网站WWW永久四虎| 亚洲国产成人AV在线播放| 精品国产亚洲一区二区三区在线观看| 国产精品亚洲专区一区| 亚洲一区无码精品色| 亚洲精品色午夜无码专区日韩| 亚洲AV无码一区二区乱子伦| 亚洲久本草在线中文字幕| 亚洲欧洲视频在线观看| 在线综合亚洲中文精品| 亚洲av无码成人精品国产| 亚洲国产精品无码久久青草| 亚洲乱码中文字幕综合| 亚洲精品高清视频| 自拍日韩亚洲一区在线| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 国产亚洲综合久久系列| 亚洲网址在线观看你懂的|