cmake 當前編譯路徑 Cmake學習(5)

2021-10-17 08:15:49 字數 4206 閱讀 4954

cmake變數按功能分有主要有四種不同的型別:

1.) 提供資訊的變數[共53個];

2.) 改變行為的變數[共23個];

3.) 描述系統的變數[共24個];

4.)控制構建過程的變數[共22個]。

此外還有一些變數因編譯使用的語言不同而不同,將它們歸為第五類[共29個]。

由於變數比較多,這裡只給出變數的大概描述;具體作用可使用cmake --help-variable variable_name命令檢視。

var#1-1 :cmake_ar靜態庫的歸檔工具名字。

var#1-2 :cmake_binary_dir構建樹的頂層路徑。

var#1-3 :cmake_build_tool實際構建過程中使用的工具。

var#1-4 :cmake_cachefile_dir檔案cmakecache.txt所在的路徑。

var#1-5 :cmake_cache_major_version用於建立cmakecache.txt檔案的cmake的主版本號。

var#1-6 :vcmake_cache_minor_version用於建立cmakecache.txt檔案的cmake的子版本號。

var#1-7 :cmake_cache_patch_version用於建立cmakecache.txt檔案的cmake的補丁號。

var#1-8 :cmake_cfg_intdir構建時,與構建配置相對應的輸出子路徑(唯讀)。

var#1-9 :cmake_command指向cmake可執行檔案的完整路徑。

var#1-10 :cmake_crosscompiling指出cmake是否正在交叉編譯。

var#1-11 :cmake_ctest_command與cmake一起安裝的ctest命令的完整路徑。

var#1-12 :cmake_current_binary_dir當前正在被處理的二進位制目錄的路徑。

var#1-13 :cmake_current_list_dir當前正在處理的listfile的完整目錄。

var#1-14 :cmake_current_list_file當前正在處理的listfile的完整路徑。

var#1-15 :cmake_current_list_line當前正在處理的listfile的行號。

var#1-16 :cmake_current_source_dir指向正在被處理的原始碼目錄的路徑。

var#1-17 :cmake_dl_libs包含dlopen和dlclose函式的庫的名稱。

var#1-18 :cmake_edit_command指向cmake-gui或ccmake的完整路徑。

var#1-19 :cmake_executable_suffix(_)本平台上可執行檔案的字尾。

var#1-20 :cmake_extra_generator構建本工程所需要的額外生成器。

var#1-21 :cmake_extra_shared_library_suffixes附加的共享庫字尾(除cmake_shared_library_suffix以外,其他可以識別的共享庫的字尾名。)

var#1-22 :cmake_generator用於構建該工程的生成器。

var#1-23 :cmake_home_directory指向原始碼樹頂層的路徑。

var#1-24 :cmake_import_library_prefix(_)需要鏈結的導入庫的字首。

var#1-25 :cmake_import_library_suffix(_)需要鏈結的導入庫的字尾。

var#1-26 :cmake_link_library_suffix需要鏈結的庫的字尾。

var#1-27 :cmake_major_versioncmake的主版本號(例如2.x.x中的2)。

var#1-28 :cmake_make_program參見cmake_build_tool

var#1-29 :cmake_minor_versioncmake的次版本號(例如x.4.x中的4)。

var#1-30 :cmake_parent_list_file當前正在被處理listfile的父listfile的全路徑。

var#1-31 :cmake_patch_versioncmake的補丁號(例如x.x.3中的3)。

var#1-32 :cmake_project_name當前工程的工程名。

var#1-33 :cmake_ranlib靜態庫的隨機化工具的名字(比如linux下的ranlib)。

var#1-34 :cmake_rootcmake的安裝路徑。

var#1-35 :cmake_shared_library_prefix(_)被鏈結的共享庫的字首。

var#1-36 :cmake_shared_library_suffix(_)被鏈結的共享庫的字尾。

var#1-37 :cmake_shared_module_prefix(_)被鏈結的可載入模組的字首。

var#1-38 :cmake_shared_module_suffix(_)被鏈結的共享庫的字尾。

var#1-39 :cmake_sizeof_void_pvoid指標的長度。

var#1-40 :cmake_skip_rpath如果變數為真,不為編譯出的可執行檔案新增執行時的路徑資訊。預設新增。

var#1-41 :cmake_source_dir原始碼樹的頂層路徑。

var#1-42 :cmake_standard_libraries鏈結到所有可執行檔案和共享庫上的庫。這是乙個list。

var#1-43 :cmake_static_library_prefix(_)被鏈結的靜態庫的字首。

var#1-44 :cmake_static_library_suffix(_)被鏈結的靜態庫的字尾。

var#1-45 :cmake_tweak_versioncmake的tweak版本號(例如x.x.x.1中的1)。

var#1-46 :cmake_using_vc_free_tools如果用到了免費的visual studio工具,設定為真。

var#1-47 :cmake_verbose_makefile設定該變數為真將建立完整版本的makefile。

var#1-48 :cmake_versioncmake的完整版本號;格式為major.minor.patch[.tweak[-id]]。

var#1-49 :project_binary_dir指向工程構建目錄的全路徑。

var#1-50 :project_name向project命令傳遞的工程名引數。

var#1-51 :project_source_dir當前工程的原始碼路徑。

var#1-52 :[project name]_binary_dir給定工程的二進位制檔案頂層路徑。

var#1-53 :[project name]_source_dir給定工程的原始碼頂層路徑。

其它變數資訊請參閱:

documentation | cmake​cmake.org

提供的文件資訊。

cmake交叉編譯

1 設定交叉編譯之前,必須在 cmakelist.txt 前面加上這樣一句,這樣 cmake 才會認為你是要交叉編譯 set cmake system namelinux 其中linux 是要編譯過去的平台,如果你是在 linux 下交叉編譯 window 的東西,就要寫成 windows 了。我是...

CMake編譯 雜記

一 cmake常見的預置的巨集 project name 通過project指定的專案名稱 project demo project source dir 工程的根目錄,上圖中的demo目錄 project binary dir 執行cmake命令的目錄,一般是在build目錄,在此目錄執行cmak...

cmake編譯報錯

問題 cmake編譯報錯 cmake error the source.此處大概意思是乙個檔案位址does not match the 另外乙個檔案位址so used to generate cache.rerun cmake.經過觀察可以發現兩個檔案位址其實只有一點差異,所以 第一次嘗試 按照第二...