Xcodeには単純な「Hello world」タイプのプログラムがありますが、その中で外部ライブラリを使用しようとしていますが、コンパイルエラーが発生します。ライブラリはは、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;
}
だから、基本的にはIライブラリをインポートしてそのクラスのインスタンスを作成しようとしています。 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
Googleのすべてのソリューションをしようとしました。何も働かなかった。どんな助けも...誰でもこのライブラリを正常にインポートして使用できますか?
この警告は、ライブラリが10.12用にビルドされているが、システムが10.11で動作していると示しています。確かにあなたは正しいライブラリバージョンを持っていますか? – voltae
これは唯一のものです。 –
アップデート:1つのエラーは、ライブラリ/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libstdc++.6.0.9.tbdも追加する必要があることです。 。それを含めた後、コンパイルエラーが1つだけ残っています。 –