2010-07-05 65 views
1

我想運行一個手動使用FreeType的程序。我不應該將FreeType編譯爲庫,而是直接使用源代碼。目前,我可以毫無錯誤地編譯我的代碼。但是,當我在Ubuntu上運行我的程序時,會出現分段錯誤。我相信這個問題與模塊結構有關。我正在使用FreeType將ttf轉換爲位圖,因此我包含了tt,sfnt和psnames模塊。但是,我猜他們的初始化有問題。FreeType手動集成

回答

2

爲什麼要避免Ubuntu提供的libfreetype6和libfreetype6-dev軟件包?

我可以理解你的目標可能是對libfreetype進行更改,因此有一個簡單的方法可以在不影響系統其餘部分的情況下進行所需的更改,但是您總是希望將FreeType用作圖書館。 (當然,你可以靜態鏈接它,但根據我的經驗,靜態鏈接通常會增加問題而不是解決問題。)

因此,您可以將FreeType的本地副本安裝到/ usr/local/lib /或〜/ local/lib /(使用./configure --prefix=/usr/local--prefix=~/local/)。

然後編譯你的程序時,你會使用gcc -I ~/local/include -L ~/local/lib ...

+0

謝謝你的回答。問題是我會在只有gcc的原型機上使用我的代碼。可能我們可以在該機器上編譯圖書館,但我的老闆不想使用圖書館。他說應該編譯代碼而不需要鏈接到庫。我已經對源代碼和代碼進行了轉換。但是,模塊的執行有問題。 – elasolova 2010-07-05 08:56:40

+0

@elasolova,至少在我的Ubuntu系統上,libfreetype也與libz.so鏈接。你是否也爲壓縮例程做了一個合適的替代品?或刪除它們? (或者它仍然會鏈接到系統的/lib/libz.so.1?)如果你已經得到這麼多,那麼可能還有一些更具體的東西需要修正:試着在你的結果上粘貼'ldd'的輸出二進制文件以及嘗試運行時收到的錯誤消息。 – sarnold 2010-07-05 09:13:16