如何在objective-c ++中编译特定文件,在objective-c中编译项目的其余部分

The*_*ebe 17 xcode compilation objective-c conditional-compilation objective-c++

我目前正在忙于一个项目,我需要使用外部附件来阅读Mifare 1k标签.

附件提供了一个SDK,用(Objective?)C++编写,我按照提供的指令将XCode设置为"Compile sources as:Objective-C++",并在"Other linkers flags"中添加"-Obj-C++".

SDK编译好了,但麻烦的是我已经在项目中使用了几个库(例如ASIHTTPRequest,JSONKit,...),并且因为这些库中的那些新设置而导致编译问题.如果我切换回以前的设置,我会在阅读器的SDK中遇到编译问题

问题是:有没有办法只从SDK中编译类作为C++,而项目的其余部分作为objective-c?

编辑: SDK文件仅包含.h(和链接库)

谢谢你的帮助,迈克

Cas*_*ser 24

从文件导航器中选择要编译为Objective C++的文件,然后在文件检查器视图中选择文件类型.这是在Xcode 4中,但在Xcode 3中有类似的机制.

从文件检查器中选择


Mar*_*bar 6

尝试将包含库头的文件重命名为myClass.h for interface,将myClass.mm 重命名为实现文件.这会强制将文件编译为objective-c ++.


小智 5

我已经解决了这个问题:

  1. 您应该将“根据文件类型”设置为“编译源为”,
  2. 将“-ObjC++”设置为“其他链接器标志”
  3. 最后,您应该将引用库方法的文件的后缀修改为 .mm