我对XCode和一个非常简单的项目感到沮丧。
我在'未定义的架构符号'中徒劳地得到错误。
奇怪的是,如果我将所有代码放在头文件中,它就会起作用。我可以在标题和CPP文件中同时具有该定义,并且它不会抱怨重新定义函数。就好像它没有看到CPP文件存在一样。
感谢您解决此问题的任何帮助。
编辑:如果我将c ++对象从库中移动到主项目中,那么一切正常。这与静态库中的类有关。
编辑2 :
具体细节。代码并没有什么特别复杂。
在主项目中,有一个主要的View类。在awakeFromNib中:
- (void)awakeFromNib
{
[super awakeFromNib];
MyCat aCat();
}
在静态库中,我有MyCat.cpp和MyCat.h。
在头文件(MyCat.h)中
class MyCat
{
public:
MyCat();
};
在CPP文件(MyCat.cpp)
中#include "MyCat.h"
MyCat::MyCat()
{
}
错误讯息:
Undefined symbols for architecture x86_64:
"MyCat::MyCat()", referenced from:
-[MainView awakeFromNib] in MainView.o
ld: symbol(s) not found for architecture x86_64
如果我不使用该课程,那么该项目编译得很好。如果我将所有C ++代码放在头文件中,它将编译正常。如果我将C ++文件移动到主项目中,那么它将再次正常编译。