Linux gcc g 編譯器使用

2021-07-07 10:11:01 字數 1321 閱讀 1703

1.首先應會設定幾個好用的環境變數;

cplus_include_path=$cplus_include_path:/home/test/include  #此環境變數用來設定標頭檔案包含路徑,這樣就不用編譯的時候新增路徑咯;

ld_library_path=$ld_library_path:/home/test/lib #此環境變數用來設定動態庫的包含路徑;

library_path=$library_path:/home/test/lib #此環境變數用來設定靜態庫的保護路徑;

把上面三個環境變數設定語句寫到乙個.sh檔案中;

然後使用source ***.sh執行操作;這樣環境變數就其作用啦,記得一定要用source命令哦。

為什麼要用source命令呢? 其實source命令只是在當前的bash環境中執行引數檔名中的語句,它與.命令是一樣的。

如果直接執行bash指令碼將會在乙個子shell環境中執行相關的命令,所以基本不會影響到當前的shell環境,所以可能設定就不起作用了。

2.使用g++編譯.c/.cpp檔案;

如果存在test.c/test.cpp,使用如下語句編譯即可:

g++ -o test test.c  

也可以先編譯成目標檔案;

g++  -c test.c

g++ -o test test.o

3.使用g++編譯.c/.cpp為靜態庫檔案;

如果存在libtest.cpp,它使用了a.cpp,b.cpp檔案中的函式或類;

首先編譯為目標檔案:

g++ -c libtest.cpp

g++ -c a.cpp

g++ -c b.cpp

然後生成.a檔案:

ar cr libtest.a libtest.o a.o b.o

4.使用g++編譯.c/.cpp為動態庫;

如果存在libtest.cpp,它使用了a.cpp,b.cpp檔案中的函式或類;

首先編譯為目標檔案:

g++ -c libtest.cpp

g++ -c a.cpp

g++ -c b.cpp

然後生成.so檔案:

g++  --shared -fpci -o libtest.so libtest.o a.o b.o

當然也可以一次性生成:

g++ --shared -fpci -o libtest.so libtest.cpp a.cpp b.cpp

5.經常會有用的-i 與 -l選項;

-i選項: -i/root/include ,此用來引入乙個標頭檔案包含目錄;

-l選項:-l/root/lib ,此用來引入乙個庫檔案包含目錄;

Linux gcc g 編譯器的使用

編譯器編譯過程要經歷四個階段 1.預處理 進行巨集替換 e 2.編譯 生成彙編 s 3.彙編 生成機器可識別 c 4.連線 生成可執行檔案或庫檔案 o 預處理 進行巨集替換 編譯 生成彙編 彙編 生成機器可識別 連線 生成可執行檔案或庫檔案 函式庫一般分為靜態庫和動態庫兩種 gdb是除錯乙個程式的執...

編譯器使用

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

clang 編譯器使用

通常的程式需要經過預處理階段,編譯階段,彙編階段,鏈結階段 include using namespace std intmain 1.生成預處理檔案clang e test.cc o test.i預處理檔案test.i如下 1 test.cc 1 1 1 3 342 3 1 1 1 2 1 tes...