Objective c 外部库(OSX程序)的Xcode编译错误
我在Xcode中有一个简单的“Hello world”类型的程序,我试图在其中使用一个外部库,但是我得到了编译错误。该库是Magtek edynamo macOS sdk: (父页面为;下载为macOS SCRA SDK) 这是我的代码: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; } 所以
#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。平台/开发者/SDKs/MacOSX.sdk/usr/lib/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。在此之后,我只剩下一个编译错误:上面提到的那个。