導航:首頁 > 源碼編譯 > gun編譯命令

gun編譯命令

發布時間:2025-06-01 03:06:05

① 第1篇(共2篇):cmake詳細使用教程

原地址鏈接: cmake使用詳細教程(日常使用這一篇就足夠了)_李吱恩的博客-CSDN博客

原地址是一篇特別好的文章,此處只是轉載,供大家學習,本人沒有版權,如涉及版權會立刻刪除

一、cmake安裝

1、在官網下載cmake的安裝包,這里我下載的是v3.26

github.com/Kitware/CMak...

2、找到下載的sh文件,並使用bash來執行sh腳本

bash cmake-3.26.0-rc4-linux-x86_64.sh

3、然後把cmake/bin/cmake軟鏈接到/bin目錄下

ln -s /root/download/cmake-3.26.0-rc4-linux-x86_64/bin/cmake /bin/cmake

4、此時已經安裝完成,可以在shell中使用cmake命令

二、使用cmake來配合程序的編譯

1、只有一個源文件的程序編譯

首先在當前目錄下創建兩個文件

hello.cpp

CMakeLists.txt (注意CMakeLists大小寫,不要寫錯了)

第一行意思是cmake最低版本要求2.8,

第二行是本項目的工程名

第三行:第一個變數:要生成的可執行文件名為hello,後面的參數是需要的依賴。

接著在當前目錄下執行 cmake .

接著會發現目錄下多生成了一些文件,例如Makefile

然後使用GUN make來編譯程序

此時會發現已生成可執行程序,並可以正常執行

2、同一目錄下多個源文件

此時在當前目錄新增兩個依賴,並mian函數的執行需要依賴這兩個文件

add.cpp

add.h

只需要CMakeLists.txt中添加所依賴的.cpp文件,編譯步驟和上面相同

三、同一目錄下很多源文件

如果同一目錄下有無窮多源文件,那麼一個一個添加就很慢了。此時可以使用cmake中的函數存儲這些源文件

aux_source_directory(dir var)

他的作用是把dir目錄中的所有源文件都儲存在var變數中

然後需要用到源文件的地方用 變數var來取代

此時 CMakeLists.txt 可以這樣優化

注意:變數的使用和Makefile不同,CMake是利用大括弧,如 ${index}

四、頭文件在別的文件夾

對於集中的頭文件,CMake提供了一個很方便的函數

include_directories ( dir )

他的作用是 自動去dir目錄下尋找頭文件,相當於 gcc中的 gcc -I dir

此時 CMakeLists.txt 可以這樣優化

五、頭文件源文件分離,並含有多個文件夾

假如說當前的工程目錄是這樣的,頭文件和源文件分離,並含有多個文件夾

根據上面的《三》和《四》。此時 CMakeLists.txt 可以這樣優化

六、生成動態庫和靜態庫

假如說當前的項目目錄是這樣的

inc目錄下存放頭文件

src目錄下存放源文件

lib目錄下存放生成的庫

build目錄下存放構建項目相關的文件,如CMakeLists.txt。而稍後我們也在這個目錄下執行cmake和make

此時 CMakeLists.txt 可以這樣優化

解釋一下:

PROJECT_BINARY_DIR是cmake系統變數,意思是執行cmake命令的目錄,我們計劃在build目錄下執行cmake命令,所以這個變數也就等同於build目錄

set_target_properties重新定義了庫的輸出名稱,如果不使用set_target_properties也可以,那麼庫的名稱就是add_library里定義的名稱。具體可以參考官方文檔。

LIBRARY_OUTPUT_PATH 是cmake系統變數,項目生成的庫文件都放在這個目錄下。這里我指定庫生成到lib目錄。

開始編譯:

在build目錄下執行 cmake .

在build目錄下執行 make

查看lib目錄下是否生成庫文件,

出現庫文件就算編譯成功

七、鏈接庫文件

我們已經在lib目錄下生成了庫文件,下面我們寫一個main函數來使用庫文件

目錄結構如下:

lib目錄下存放靜態庫和動態庫

main_src目錄下存放main函數相關的源文件

bin目錄存放項目生成的可執行文件

此時 CMakeLists.txt 可以這樣寫

解釋一下:

EXECUTABLE_OUTPUT_PATH是cmake系統變數,意思是生成的可執行文件的的目錄,我這里把他改為bin目錄,因此生成的可執行性文件會出現在bin目錄中。

八、CMake其他功能

一、添加編譯選項

有時編譯程序時想添加一些編譯選項,如-Wall,-std=c++11等,可以使用add_compile_options來進行操作,例如:

原文件是一篇特別容易懂且全面的文檔

原文鏈接: cmake使用詳細教程(日常使用這一篇就足夠了)_李吱恩的博客-CSDN博客

② CC和gcc是一樣的編譯器嗎

cc是Unix系統的C Compiler,而gcc則是GNU Compiler Collection,GNU編譯器套裝。gcc原名為Gun C語言編譯器,因為它原本只能處理C語言,但gcc很快地擴展,包含很多編譯器(C、C++、Objective-C、Ada、Fortran、Java)。因此,它們是不一樣的,一個是古老的C編譯器,一個是GNU編譯器集合,gcc裡面的C編譯器比cc強大多了,因此沒必要用cc。
下載不到cc的原因在於:cc來自於昂貴的Unix系統,cc是商業軟體。
Linux下的cc是gcc符號連接,可以通過$ls –l /usr/bin/cc來簡單察看,該變數是make程序的內建變數,默認指向gcc。cc符號鏈接和變數存在的意義在於源碼的移植性,可以方便的用gcc來編譯老的用cc編譯的Unix軟體,甚至連makefile都不用改在,而且也便於Linux程序在Unix下編譯。

③ linux查看centos版本命令

你好,查看CentOS版本信息的命令有以下幾種:

  1. cat /etc/issue 查看版本

    [root@Nginx ~]# cat /etc/issue
    CentOS release 6.5 (Final)
    Kernel on an m

    CentOS release 6.5 (Final)
    CentOS 發行版6.5

  2. cat /etc/redhat-release

    [root@Nginx ~]# cat /etc/redhat-release
    CentOS release 6.5 (Final)

  3. cat /proc/version

    [root@Nginx ~]# cat /proc/version
    Linux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

    我們可以看到該系統使用的是Linux 2.6.32 內核的64為操作系統。GCC 為GUN 編譯器集合,採用4.4.7版本。

  4. uname -a

    [root@Nginx ~]# uname -a
    Linux Nginx 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    Linux 主機Nginx
    Linux 版本2.6.32-431.el6.x86_64 64位

  5. uname -r

    [root@Nginx ~]# uname -r
    2.6.32-431.el6.x86_64

    分析結果:Linux 版本2.6.32-431.el6.x86_64 64位

希望可以幫到你,謝謝

④ makefile 中的,像gun中的 awk,grep都什麼意思,誰有文檔說明,給你,謝謝!

你這個makefile 文件因該是在linux下使用的編譯文件。awk,grep都是linux的過濾命令。
grep主要是命令的簡單過濾。
awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。
從這里可以看出,awk和grep都是文本處理,但awk更加強大。

閱讀全文

與gun編譯命令相關的資料

熱點內容
文件夾瀏覽圖片 瀏覽:948
貸款利息計演算法則概要 瀏覽:491
查看網頁源碼平台 瀏覽:693
主梁和主梁相交箍筋要加密嗎 瀏覽:967
單片機怎麼用k4外部中斷 瀏覽:487
lr收藏文件夾圖片 瀏覽:468
java1000以內完數 瀏覽:785
debayer演算法 瀏覽:428
數控師傅是要自己編程嗎 瀏覽:787
數字貨幣用哪個編程語言 瀏覽:771
國家電網充電樁app哪個便宜 瀏覽:354
手機視頻高清壓縮軟體 瀏覽:776
程序員有多少年薪百萬 瀏覽:260
手機傳圖文件夾 瀏覽:875
單片機控制激光 瀏覽:70
樺甸冷庫壓縮機 瀏覽:241
點對齊命令 瀏覽:641
天正建築未知命令 瀏覽:747
微信簡單訂貨系統源碼 瀏覽:925
加密的壓縮包解壓方式選哪一個 瀏覽:163