2017-04-25 10 views
0

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のすべてのソリューションをしようとしました。何も働かなかった。どんな助けも...誰でもこのライブラリを正常にインポートして使用できますか?

+0

この警告は、ライブラリが10.12用にビルドされているが、システムが10.11で動作していると示しています。確かにあなたは正しいライブラリバージョンを持っていますか? – voltae

+0

これは唯一のものです。 –

+0

アップデート:1つのエラーは、ライブラリ/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libstdc++.6.0.9.tbdも追加する必要があることです。 。それを含めた後、コンパイルエラーが1つだけ残っています。 –

答えて

0

解決済みこれらがルーキーミスであるかどうかはわかりませんが、私は2つの問題がありました:

1)ライブラリ/Applications/Xcode.app/Contents/Developer/Platforms/MacOSXも含める必要がありました。platform/Developer/S DKs/MacOSX.sdk/usr/l ib/libstdC++。6.0.9.t bd

2)私は#import <Cocoa/Cocoa.h>もインポートしなければなりませんでした。したがって:

#import "MTSCRA.h" 
#import <Cocoa/Cocoa.h> 

int main (int argc, const char * argv[]) 
{ 
    MTSCRA* mtSCRALib = [[MTSCRA alloc] init]; 
    return 0; 
} 
関連する問題