我已經創建了我想這是在C++使用Objective-C/C的C++命令行工具,項目靜態庫
這裏開發分離的項目中使用一個Objective-C/C靜態庫是一個代碼靜態庫:
Info.h
const char * GetSomeInfo();
Info.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];
}
然後我說我nfo.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標誌。 因爲我收到鏈接器錯誤:
Undefined symbols for architecture x86_64: "GetSomeInfo()", referenced from: _main in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
如何解決上述問題?