2012-08-31 173 views
6

我正在編寫一個使用OpenMP的簡單跨平臺庫,但我無法弄清楚如何在iPhone應用程序中對其進行測試。
我跑OS X,與GCC 4.7,我編譯它作爲一個靜態庫,我也設法將其與libgomp.a連接在一起,並把它添加到在Xcode我的測試應用程序。應用程序建立沒有任何錯誤或警告,但是當我在iPhone模擬器運行它我得到的是這樣的錯誤消息:編譯使用OpenMP的iOS靜態庫

dyld: lazy symbol binding failed: Symbol not found: ___emutls_get_address 
    Referenced from: /opt/local/lib/gcc47/i386/libgomp.1.dylib 
    Expected in: /usr/lib/libSystem.B.dylib 

dyld: Symbol not found: ___emutls_get_address 
    Referenced from: /opt/local/lib/gcc47/i386/libgomp.1.dylib 
    Expected in: /usr/lib/libSystem.B.dylib 

我讀,有在GCC與___emutls_get_address以前版本中的錯誤,但它應該是現在修好。你有什麼想法可能是錯的?

+0

你有鏈接你的頭文件嗎?也許想像真誠的明信片和其他人這樣的「假」框架會有所幫助...... – Ondrej

回答

2

它正在尋找一個不存在的動態庫。由於您不能在實際設備上使用動態庫,因此它將在設備上失敗,但不會在構建過程中失敗。您應該嘗試手動將庫重建爲.a文件,並確保使用任何-l參數進行arnt。這是我最適合你的。假設這不是越獄(可能是真的),你將需要手動鏈接它。您始終可以將庫代碼文件添加到您的項目中。

希望這會有所幫助。