Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 外部库(OSX程序)的Xcode编译错误_Objective C_Xcode_Macos - Fatal编程技术网

Objective c 外部库(OSX程序)的Xcode编译错误

Objective c 外部库(OSX程序)的Xcode编译错误,objective-c,xcode,macos,Objective C,Xcode,Macos,我在Xcode中有一个简单的“Hello world”类型的程序,我试图在其中使用一个外部库,但是我得到了编译错误。该库是Magtek edynamo macOS sdk: (父页面为;下载为macOS SCRA SDK) 这是我的代码: #import "MTSCRA.h" int main (int argc, const char * argv[]) { MTSCRA* mtSCRALib = [[MTSCRA alloc] init]; return 0; } 所以

我在Xcode中有一个简单的“Hello world”类型的程序,我试图在其中使用一个外部库,但是我得到了编译错误。该库是Magtek edynamo macOS sdk:

(父页面为;下载为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)
以及类似的警告:

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放到了我的项目目录中
  • 在buildphases->linkbinary中,我添加了libmtscarosx.a
  • 生成设置->库搜索路径设置为“$(继承)”和“$(项目目录)/HelloWorld”
这是我的环境:

  • MacBookPro 64位
  • OSX El Capitan 10.11.5
  • Xcode V8.2.1

尝试了所有的谷歌解决方案;什么都没用。任何帮助…其他人能否成功导入并使用此库?

解决了此问题。不确定这些是否是新手犯的错误,但我有两个问题:

1) 我还需要包括library/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX。‌​平台/开发者/S‌​DKs/MacOSX.sdk/usr/l‌​ib/libstdc++.6.0.9.t‌​屋宇署

2) 我还必须导入
#导入
。因此:

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

int main (int argc, const char * argv[])
{
    MTSCRA* mtSCRALib = [[MTSCRA alloc] init];
    return 0;
}
#导入“MTSCRA.h”
#进口
int main(int argc,const char*argv[]
{
MTSCRA*mtSCRALib=[[MTSCRA alloc]init];
返回0;
}

警告说该库是为10.12版本构建的,但您的系统正在运行10.11版本。确定您得到了正确的库版本吗?这是他们仅有的版本。更新:一个错误是我还需要包括库/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libstdc++.6.0.9.tbd。在此之后,我只剩下一个编译错误:上面提到的那个。