日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

g++基础知识

發(fā)布時(shí)間:2023/12/2 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 g++基础知识 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、編譯過程: 1)預(yù)處理,生成.i文件 2)轉(zhuǎn)換成為匯編語言,生成.s文件 3)匯編變?yōu)槟繕?biāo)代碼(機(jī)器代碼),生成.o文件 4)鏈接目標(biāo)代碼,生成可執(zhí)行程序。 二、常用編譯選項(xiàng) tips:選項(xiàng)必須獨(dú)立給出:‘-pg’和‘-p -g’完全不同 -c:編譯或匯編源文件,不做連接。 G++ -c test.cpp輸出test.o -o file:制定輸出文件為file -Wall: 輸出所有編譯警告(最好加上) -Dmacro=XXX:定義宏。 -shared:生成一個(gè)共享庫文件 g++ -shared -o libtest.so test.o -fPIC:生成位置無關(guān)目標(biāo)代碼,適用于動態(tài)連接。 -llibrarytest:連接名字為librarytest的庫 真正名字是liblibrarytest.so(a) so是動態(tài)庫,a是靜態(tài)庫。 嚴(yán)格按照文件名搜索,版本號要創(chuàng)建軟連接。 編譯搜索目錄: 用戶-L指定, LIBRARY_PATH,系統(tǒng)目錄/lib /usr/lib 運(yùn)行搜索目錄: LD_LIBRARY_PATH,ld.so.cache & /etc/ld.so.conf ,系統(tǒng)目錄 /lib /usr/lib 動態(tài)庫和靜態(tài)庫同名,優(yōu)先動態(tài)庫。 -Ldir:添加庫文件搜索路徑 -Idir(include):添加頭文件搜索路徑 -g:產(chǎn)生調(diào)試信息 -olevel:優(yōu)化級別,一般用o2 三、靜態(tài)庫、共享庫 靜態(tài)庫:一些.o文件打包,在被連接后成為程序的一部分。 編譯方法 -g++ -c test.cpp -ar res libtest.a test.o 鏈接方法: -g++ -Wall -o test testMain.cpp -ltest -L./ 共享庫:鏈接的時(shí)候不會被復(fù)制到程序中。 編譯方法: g++ -c fPIC test.cpp //要動態(tài) g++ -shared -WI, -soname, libtest.so, -o libtest.so.1.0.1 test.o mv libtest.so.1.0.1 /usr/lib sudo ldconfig & || ll /user/lib/libtest.so //創(chuàng)建一個(gè)軟連接。 鏈接方法: g++ -o test test.cpp ./libtest.so -ldx_cxx 四、常用命令 ldd:顯示程序依賴的同臺共享庫。 file:查看文件格式信息。 ldconfig:在搜尋目錄下搜索出可以共享的動態(tài)鏈接庫

總結(jié)

以上是生活随笔為你收集整理的g++基础知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。