#1.cmake verson,指定cmake版本
cmake_minimum_required(version 3.16)
#2.project name,指定專案的名稱,一般和專案的資料夾名稱對應
project(demo)
#3.head file path,頭檔案目錄
include_directories(include)
#include_directories(include)
#include_directories(include)
#4.source directory,源檔案目錄
aux_source_directory(src dir_srcs)
#5.set environment variable,設定環境變數,編譯用到的原始檔全部都要放到這裡,否則編譯能夠通過,但是執行的時候會出現各種問題,比如"symbol lookup error ***xx , ndefined symbol"
set(cmake_cxx_standard 14)
#set(cmake_cxx_standard 14)
#set(cmake_cxx_standard 14)
#交叉編譯配置,後續補充
# 設定可執行檔案輸出路徑 set(cmake_runtime_output_directory build)
#6.add executable file,新增要編譯的可執行檔案
add_executable($$
)#7.add link library,新增可執行檔案所需要的庫,比如我們用到了libm.so(命名規則:lib+name+.so),就新增該庫的名稱
target_link_libraries(
$ m)
#target_link_libraries($ m)
#target_link_libraries($ m)
個人不喜歡cmake過程中的cahe等檔案,看著亂,本來打算用cmake內部進行處理,沒找到方法,於是決定用指令碼處理,如下:
1)每次構建makefile時候順帶清理過程中的檔案
2)順帶進行make
#!/bin/bash
make clean;
rm -rf cmakecache.txt cmakefiles cmake_install.cmake makefile;
cmake cmakelists.txt ;
make
;rm -rf cmakecache.txt cmakefiles cmake_install.cmake ;
Makefile的一種通用寫法
管理linux環境下的c c 大型專案,如果有乙個智慧型的build system會起到事半功倍的效果,本文描述linux環境下大型工程專案子目錄makefile的一種通用寫法,使用該方法,當該子目錄內的檔案有增刪時無需對makefile進行改動,可以說相當的智慧型。下面先貼 為減小篇幅,一些非關鍵...
一種Java通用的FeatureMap訪問設計
首先,定義map物件,將map的value型別指定為object,它可以儲存任意基礎型別或自定義型別的值物件。由於值型別為object,在讀取map元素時,往往需要將值強制轉換為需要的型別。其實,可以返回值型別為范型優化 將型別轉換前置到get方法中,如下 created by jerry on 1...
介面表 一種通用機制
需求 生成一種單據 發貨單。發貨單分為頭和行,頭根據行的一些屬性分組產生。需要各種驗證。同時要插入批次表。在整個系統中,不止一處會需要生成發貨單。分析 在系統中每次都要生成發貨單的地方都寫一套程式,會發現每套程式都比較類似。面對比較類似的程式時,就要分解程式,把相同的部分和不同的部分區分開。針對該程...