Ubuntu下編譯基於libpoco工程詳解

2021-06-22 08:23:42 字數 1071 閱讀 1329

最近嘗試著把macosx下的codelite工程移植到linux下執行,系統選擇的是ubuntu12.04(64位),以下為詳細過程:

1. 安裝codelite,執行apt-get install codelite,該步驟將安裝codelite,gnu gcc/g++編譯器,gdb偵錯程式。

2. 安裝make工具 ,執行apt-get install make

3. 安裝mysql社群伺服器版本及workbench

解壓,因為我用的是靜態庫,在終端命令列下跳到壓縮根目錄,執行./configure -static --omit=data/odbc;sudo make -s -j4;

5. 前期工作差不多好了,直接用codelite開啟workspace,編譯整個workspace,出現第乙個錯誤:

`a local symbol' can not be used when ****** a shared object; recompile with -fpic, 字面上意思是符號匯出有問題,用-fpic引數重編譯。

這種情況大多出現在64位系統,在編譯引數項加上-fpic,該錯誤解決。

6. 第二個錯誤其實是一堆錯誤,核心都是提示poco靜態鏈結庫內引用無效,這不應該啊,我都強制加到link library裡面了,google之,

居然沒有人碰到,或者是這個問題太簡單了?只能把所有鏈結庫全部去掉,乙個乙個往上加,加乙個編譯一次,終於發現乙個自己犯了乙個白痴的問題,

靜態鏈結庫在 -o時候是有順序的,後面就簡單了,按照poco各專案依賴關係,調整順序後,該錯誤解決。

7.第三個錯誤提示dlopen 錯誤,這個比較常見,在link option中加上-ldl就ok了

8. 第四個提示pthead錯誤,在link option中加上-lpthread或者引入動態鏈結庫lpthread.so,如果引入靜態庫lpthread.a會出現些亂七八糟的問題,主要原因是相互依賴的鏈結庫,靜態庫和動態庫同時引入造成的衝突。

9. 終於只剩下乙個錯誤了,提示msyql不支援compress,在link option中加上-lz就好了。

執行編譯好的執行檔案,一切都很完美,bty個人比較喜歡codelite,簡單而有效。

Ubuntu下編譯核心

cd wget 安裝有關編譯程式。安裝make gcc,make kpkg,執行menuconfig等等和編譯核心相關的工具。安裝不了,請檢查 etc apt sources.list 檔案。有關命令 sudo apt get install build essential kernel packa...

ubuntu 下編譯核心

2.為寫qemu的watchdog驅動練手。有朋友問make的 watchdog驅動 需要什麼準備,所以寫這個blog。ubuntu 12.04.4 1.make 時間 大於1個小時 1.安裝編譯核心所需要的軟體 apt get install build essential kernel pack...

Ubuntu下編譯安裝OpenCV

國外乙個部落格是在ubuntu 11.04下安裝opencv2.2 由於我的系統是11.10的,在opencv2.2下make時,總是出錯。如果系統是ubuntu 11.04的建議採用這篇英文部落格的方法,應該沒有問題。後面看到另乙個部落格,可以安裝opencv2.3 對於測試,可以參考上面提到的一...