g 動態庫建立

2021-07-04 00:22:45 字數 413 閱讀 3911

假設有三個檔案 a.cpp b.hpp b.cpp, a和b cpp裡面都包括了標頭檔案b.hpp

a.cpp中有main函式,現在生成b.so供a呼叫,並且個檔案使用不同的release 優化級別:

1. g++ -o3 b.cpp -shared -o b.so(採用o3最高端別優化生成動態庫.so 編譯時如果動態庫里包括了輸出流如cout,要加上-fpic進行編譯,但是執行時並不會輸出到terminal)

2. g++ -o2 -c a.cpp (-c僅把原始碼編譯成目標**,一些庫沒有加入也不會報錯)

3. g++ a.o b.so -o main.o(如果其中呼叫了一些其他庫可在此時加入,例如opencv)

4. ./main.o

5. 其他命令

-s 生成彙編碼

等等

建立靜態庫和動態庫

今天是2014年5月25日。首先我想說一下在linux作業系統中,如何檢視程序和檢視程序樹。要想檢視程序只需敲入ps aux 即可,也可用 top指令,至於它倆的具體區別後面在介紹。用pstree 來檢視程序樹。這裡面有子程序和父程序,一定要會看。下來教你如何匯出核心資訊,和檢視映像。基於剛才的ps...

Linux環境g 編譯TinyXML動態庫

除了cmarkup,tinyxml也是c c 下解析xml很好的工具。在linux下用g 編譯tinyxml的步驟如下 tinyxml版本2.6.2 進入tinyxml解壓目錄,用文字編輯器開啟makefile檔案。修改編譯目的檔案引數。將output xmltest改為output libtiny...

g 鏈結 gcc 編譯的動態庫

背景 需要在c 的基礎上,連線上c語言編譯的動態庫。方式一 將c檔案,使用g 編譯生成動態庫,然後在用g 連線到c 生成的目標檔案上。可以編譯通過,但是在程式測試拷機中,出現異常退出。方式二 使用gcc 編譯c檔案,生成動態庫,在c 中新增c的標頭檔案時候,使用 extern c 然後再用g 把gc...