【发布时间】:2011-07-09 00:01:10
【问题描述】:
我试图为您清楚地描述我的问题,所以可能会有点长,如果您能阅读并提供一些建议,我真的很感激。谢谢。
我有一个库项目,我们称之为MyCppLib,它包含一些遗留的c++代码,我在这个项目中添加了一个适配器类,这样我就可以在其他项目中使用它而无需使用objective-c++。这是MyCppLib 项目的概述。
项目 MyCppLib
- 一些遗留的 C++ 代码
- 适配器.h
- 适配器.mm
我有另一个项目,我们称之为Main 项目,它使用MyCppLib 项目作为静态库。所以我使用xCode 4编译MyCppLib,得到libMyCppLib.a,并在xCode 4中配置Main项目,将其与Main项目链接。这是Main 项目的概述。
项目主要
- 一些objective-c类 不包含'.mm'文件
- 适配器.h
- libMyCppLib.a 作为静态库
当我在 xCode 4 中编译 Main 项目时,我遇到了一些错误:
架构 armv6 的未定义符号:
“operator new(unsigned long)”,引用自:
- [适配器初始化] 在 libMyCppLib.a(Adapter.o)
my::cpp::命名空间:: MyCppClass::MyCppClass()in libMyCppLib.a(MyCppClass.o)... 其他一些类似的错误
ld:未找到架构 armv6 的符号
collect2: ld 返回 1 个退出状态
我认为这可能是因为Main 项目没有objective-c++ 功能,所以我在Main 项目中添加了一个“.mm”文件。而现在Main 项目应该是这样的:
项目主要
- 一些objective-c类 不包含'.mm'文件
- 适配器.h
- libMyCppLib.a 作为静态库
- DummyObjCpp.h
- DummyObjCpp.mm
然后,我编译了Main 项目,它成功!
所以,最后,我的问题是:如何在不添加“.mm”文件的情况下将Main 项目配置为具有objective-c++ 功能?
【问题讨论】:
标签: objective-c xcode4 objective-c++