我在Xcode中有一个简单的" Hello World"类型程序,我正在尝试在其中使用外部库,但是我遇到了编译错误。图书馆是Magtek Edynamo Macos SDK:
https://www.magtek.com/content/softwarepackages/1000004036.zip
(父母页面是https://www.magtek.com/support/edynamo?tab=software; download是macos scra 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。
- 构建设置 ->库搜索路径设置为" $(继承("one_answers" $(project_dir(/helloworld"
这是我的环境:
- MacBook Pro 64-bit
- OSX El Capitan 10.11.5
- Xcode V8.2.1
尝试了所有Google解决方案;没有什么可用。有任何帮助...其他任何人都可以成功导入并使用此库吗?
解决了这个问题。不确定这些是否是新秀错误,但我有两个问题:
1(我还需要包括library/applications/xcode.app/contents/developer/platforms/macosx.Platform/devellinger/s dks/macosx.sdk/usr/usr/ling ib/lib/libstdc 。.9.tBd
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;
}