TestViewController.h / TestViewController.mm
HelloWorld.h / HelloWorld.cpp
如果我包含" HelloWorld.h"进入TestViewController.mm它编译得很好。当我包含" HelloWorld.h"进入TestViewController.h它会提示错误:' iostream'文件未找到。
我的HelloWorld.h代码是一个简单的标准cpp文件。
#ifndef __MixedCppTest__HelloWorld__
#define __MixedCppTest__HelloWorld__
#include <iostream>
#include <vector>
class HelloWorld {
public:
HelloWorld();
~HelloWorld();
};
#endif /* defined(__MixedCppTest__HelloWorld__) */
答案 0 :(得分:0)
答案 1 :(得分:0)
当我包含&#34; HelloWorld.h&#34;进入TestViewController.h它提示 错误:&#39; iostream&#39;找不到文件......
是否有任何导入TestViewController.h的Objective-C文件? 在预处理阶段,头文件成为翻译单元的一部分(与源文件一起),如果您要求将这样的头(包含c ++库包含和c ++类定义)包含在Objective-C源文件中 - 那么不,这是不可能的。如果您正在搜索编译方式并将.cpp和.m源文件链接到一个二进制文件,则可以使.mm包装器单元将它们连接在一起。
答案 2 :(得分:0)
感谢https://stackoverflow.com/users/635608/mat的答案。
它只有一个标准解决方案,编译器知道指定的源应编译为objective-c ++。
只有3种方式:
将.m更改为.mm
在xcode编辑器的Utilities面板中将Type更改为Objective-c ++。
更改&#34;将来源编译为&#34;到objective-c ++
如果间接导入cpp文件,则应在导入链上将所有文件更改为objective-c ++编译模式。