2010年4月17日星期六

xcode中object-c c++混编出现的问题

error: expected unqualified-id before'@' ,出现一大堆的错误

出现这种情况的原因是xcode无法分辨出,要编译的文件类型 是c++ 还是 object-c++ ,所以默认使用object-c 或是 c++进行编译。这样就会导致类型错误,很多东西未定义

错误情况: object-c代码中使用c++代码

或者c++代码中使用object-c 代码

解决情况

如果是在object-c中使用c++代码,则将.m 文件名改为.mm ,另外在文件名上右键-Get info-》将文件类型改为 sourcecode.cpp.objcpp

如果是在c++类中引用object-c代码,则在文件名上右键-Get info-》将文件类型改为 sourcecode.cpp.objcpp

--------------

XCode Error ".objc_class_name_XXX", referenced from: 错误解决

某源文件在主target里面没有加进来,引用这个文件就会出现标题所示的错误,解决方法是找到这个文件,把后面的勾打上(加入到这个target里面来).

在文件上右键 -getinfo-》targets-》将属于的target打上勾

Linking Error: Symbol Not Found


错误的几种原因:

1。 文件类型错误 xocde无法分辨除要编译的文件是objc 还是 objcpp (解决方法见上)

2。 文件未包含在target中 (解决方法见上)

3。源代码文件中使用的framework未包含在程序中 ,在target名称上右键getinfo -》 general -》linked libraries -》+号添加 。或在Frameworks目录上右键 添加exsting frameworks
发表评论