我有一個簡單的「Hello world」類型的程序在Xcode中,我試圖使用外部庫,但我收到編譯錯誤。該圖書館是的MagTek edynamo MacOS的SDK:與外部庫(OSX程序)的Xcode編譯錯誤
https://www.magtek.com/Content/SoftwarePackages/1000004036.zip
(父頁面https://www.magtek.com/support/edynamo?tab=software;下載MacOS的SCRA SDK)
這是我的代碼:
#import "MTSCRA.h"
int main (int argc, const char * argv[])
{
MTSCRA* mtSCRALib = [[MTSCRA alloc] init];
return 0;
}
所以基本上我只是導入庫並嘗試實例化其中的一個類。 Xcode中不顯示任何內聯編譯錯誤的任何地方,但是當我嘗試建立並運行,它會導致各種不確定的符號錯誤,如這一點:
Undefined symbols for architecture x86_64:
"_NSApplicationWillTerminateNotification", referenced from:
-[HIDManager init] in libMTSCRAOSX.a(HIDManager.o)
和像這樣的警告:
ld: warning: object file (/path/HelloWorld/libMTSCRAOSX.a(MTSCRA.o)) was built for newer OSX version (10.12) than being linked (10.11)
(如果我註釋掉MTSCRA* mtSCRALib = [[MTSCRA alloc] init];
線,它運行良好。)
這是我走上包括在我的Xcode項目庫中的步驟:
- 我把MTSCRA.h和libMTSCRAOSX.a放到了我的項目目錄中。
- 從構建階段 - >鏈接二進制文件,我添加了libMTSCRAOSX.a。
- 構建設置 - >庫搜索路徑設置爲 「$(繼承)」 和 「$(PROJECT_DIR)/ HelloWorld」 的
這是我的環境:
- 的MacBook Pro 64位
- OSX埃爾卡皮坦10.11.5
- 的Xcode V8.2.1
嘗試了所有的谷歌的解決方案;沒有工作。任何幫助...任何人都可以成功導入和使用這個庫嗎?
該警告說庫的構建時間爲10.12,但系統正在運行10.11。當然,你有正確的庫版本? – voltae
這是他們唯一的一個。 –
更新:一個錯誤是我還需要包含庫/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libstdc++.6.0.9.tbd 。包括這個之後,我剩下一個編譯錯誤:我上面提到的那個。 –