分享點編譯第三方庫的經驗

2021-08-19 14:35:58 字數 1446 閱讀 7625

在畢設專案中需要使用乙個開源 3d 渲染引擎 osg 庫,既然是第三方庫那麼基本上是需要自己編譯的,倒不是說必須的,而是最好是自己編譯,為什麼呢?

因為官方編譯的版本不一定適合你的機器,在你的機器上執行用你自己機器編譯的版本是最好的了,所以在使用第三方庫時最好自己編譯乙份,以免在開發除錯過程中出現一些莫名其妙的錯誤,那樣會嚴重影響效率和自己的心情。

因為之前也很少使用第三方庫,之前也就使用過 boost 庫吧,但是編譯 boost 庫還是挺簡單的,只需要在命令列鍵入幾行命令就可以了。但是這次編譯 osg 庫還稍微有點麻煩,因為對這個庫不太熟悉,所以我就沒有使用命令列而是使用 cmake 直接圖形化編譯了。編譯了好幾次,最後算是編譯成功了,這裡總結了點經驗,雖然不一定適合所有庫的編譯,但是最起碼是我經過實踐總結的,應該可以提供一些參考作用。

這個非常重要,直接決定了你能不能使用編譯出來的庫。你要提前搞清楚你的專案位數,確定是編譯 32 位版本還是 64 位版本。我的建議是盡量編譯 32 位版本的庫,因為相容性要好一點,麻煩會少很多,但是實際情況還需要你自己取捨,這只是我的建議,千萬不要一概而論了。

在 win 下主要使用 vc++ 編譯器,而 vc++ 編譯器也分為 32 位和 64 位,在選擇的時候一定要跟庫的版本對應,即:

1. 編譯 32 位版本用 32 位編譯器

2. 編譯 64 位版本用 64 位編譯器

在 linux 下用 gcc 也是一樣的道理,很多時候最後的編譯出錯都是因為沒有注意到這些細節,所以配置時一定要注意了,畢竟編譯一次很耗時間的,爭取一次通過。

有些庫的編譯依賴第三方庫,例如 osg,在 cmake 配置的時候需要指定這個第三方庫,並且仍然要注意使用對應平台的第三方庫,即:

1. 編譯 32 位庫使用 32 位第三方庫

2. 編譯 64 位庫使用 64 位第三方庫

總之,平台對應是很重要的,直接影響到你能不能編譯成功和使用。

這個非常容易出錯,在配置第三方庫的路徑時一定要選到含有 include,bin,lib 這些資料夾的路徑下,否則也很容易報錯找不到第三方庫,進而導致編譯失敗。

例如這是 osg 第三方庫的正確路徑:

在配置時需要選擇庫的安裝路徑,建議你最好選擇非系統盤,在 linux 下選擇當前使用者有許可權訪問的資料夾。因為安裝的時候如果沒有安裝路徑的訪問許可權,就會安裝失敗的,請一定注意了!

在使用編譯出來的庫時要注意,用什麼編譯器來編譯庫,就用什麼編譯器來編譯你的專案。例如我使用 vs2015_x86 來編譯 osg,那麼我在 qt 中使用的時候也要使用 msvc2015_x86 編譯套件的 qt,否則也是使用不了的,即編譯庫和使用庫的編譯器要相同

就這幾點經驗吧,有需要具體編譯 osg 庫的過程的可以看看我之前的這篇文章。

shareSDK(分享第三方庫)的 使用

這個例子我自己裁剪的官方的例子很好,但 太多不方便看,其實會乙個其他的也就會了。1 匯入如下框架和第三方庫 下面是微博分享的 裡子 ibaction sharesina id sender 都在agapiviewcontroller.m這個類中,大家找到這類就可以在裡面找到對應的方法。param s...

ffmpeg第三方庫編譯記錄

最近在研究ffmpeg的編譯,之前使用的ubuntu,需要安裝虛擬機器,非常麻煩,所以後來改研究在windows平台編譯。一開始遇到很多挫折,參考了網上很多的帖子,但要麼不全要麼內容已過期,經過我的反覆試驗或研究,最終搞定了。在此記錄一下,也希望能對編譯ffmpeg的朋友們有所幫助。configur...

MAYA 編譯安裝第三方庫

獲取maya對應版本的devikit包 獲取maya對應版本的vs 我這是maya2018版 編譯庫 管理員執行 編譯原始碼 cmd命令 原始碼目錄 c program files autodesk maya2018 bin mayapy.exe setup.py build ext i c pro...