【发布时间】:2015-10-05 01:01:38
【问题描述】:
我创建了一个 Objective-C/C 静态库,我想在 C++ 下开发的独立项目中使用它
这是静态库的代码:
信息.h
const char * GetSomeInfo();
信息.m
#import "Info.h"
#import <Foundation/Foundation.h>
@interface Info : NSObject
- (NSString *)someInfo;
@end
@implementation Info
- (NSString *)someInfo
{
return @"getting some info";
}
@end
const char * GetSomeInfo()
{
Info *info = [[Info alloc] init];
return [[info someInfo] UTF8String];
}
然后我将 Info.h 和 Info.a 添加到我的主要 C++ Xcode 项目中,它看起来像在 Xcode 中创建的命令行工具:
#include <iostream>
#include "Info.h"
int main(int argc, const char * argv[])
{
const char *someInfo = GetSomeInfo();
printf("some info: %s", someinfo);
return 0;
}
我将 Info.a 添加到项目设置中 -> 将二进制文件与库链接。还在项目中添加了 -ObjC 标志。 结果我收到链接器错误:
架构 x86_64 的未定义符号:“GetSomeInfo()”, 参考自: main.o ld 中的 _main:未找到架构 x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看 调用)
如何解决上述问题?
【问题讨论】:
标签: c++ objective-c xcode macos