2013-04-07 90 views
1

返回字符串我试图声明功能在头文件返回字符串,因为我将这个从目标c。基本上这会工作,不是吗?声明函数在C++

std::string myFunction(); 

但它会抛出错误消息说“预期';'在顶级声明器之后“,搜索了很多,每个人都建议在头文件中放入#include,我试过这个,但是它不起作用,这次它会抛出另一个错误消息”'string'file not found“。

有另一个函数返回双,没有问题的。

double doSomething(double a); 

-

#include <string> 

不起作用它抛出错误消息说“未找到 '字符串' 文件”。试图创建新的项目,以防万一矿可能被损坏,但它不工作,我应该把东西放在搜索路径等?

enter image description here

最后我做到了。 解决方案:已将“编译源代码”设置更改为Objective-C++,它是Build Settings/Apple LLVM Compiler 4.2下的工具,其工作原理类似于魅力。

+0

你可以向我们展示你尝试的'#include'吗? – 2013-04-07 15:17:22

+2

如果你的编译器没有找到'',那么你要么没有使用C++编译器(例如gcc可以像纯C编译器一样依赖于它的参数),要么你的IDE安装错误或者配置错误。在您的机器上手动查找“string”文件(它没有文件名后缀),并检查IDE中配置的包含文件路径。 – 2013-04-07 15:26:13

+0

#ifdef __cplusplus extern“C”.....工程,这就是为什么假设它不是编译器问题。但我注意到了一些。如果它是纯粹的C++项目没有问题,当我将C++头文件链接到Obj-c时,它开始抛出关于的错误。 – mohacs 2013-04-07 16:32:01

回答

3

至少,您必须包含C++标准库头文件string,其中声明std::string类(实际上,它是类模板的类型定义,但这是另一回事)。

#include <string> 

std::string myFunction(); 

您还应确保在您自己的标题中使用include guards

1

你错过了头文件:

#include <string> 
1

你必须记住,ObjC文件在C未C++建,如果你想使用C在Objective-C++文件,你需要改变的延伸将ObjC文件从.m改为.mm以使其成为ObjC++文件,否则就像试图将C++头文件包含在C文件中一样。

+0

是的,我将扩展名更改为.mm – mohacs 2013-04-07 15:47:14