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...