繁体   English   中英

如何在带有xcode的Objective-C项目中使用自定义类型(C ++)?

[英]How can I use my custom types (C++) in an objective-c project with xcode?

我写了一些类来处理具有透明单位的数字,就好像它们只是整数或浮点数一样。 简而言之:

SI_Term speed(4, "mph");
SI_Term distance(10000, "feet");
SI_Term time = distance / speed;
std::cout<<time.string();

所有主要运营商都无法按这种方式工作。 我做了很多工作,所以我想在我的ObjC iPhone应用程序中使用C ++类。 我尝试将扩展名为.h和.mm的文件添加到我的xcode项目中,但似乎并未将它们视为C ++文件。 (在我声明一个类的任何地方都找不到任何STL标头,语法错误)。

新信息:尝试使用.mm和.h扩展名,错误:在.h文件中: namespace DA以及涉及c ++代码的几乎所有其他内容(此消息共约40个错误)给了我expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

我还得到*: No such file or directory在整个c ++文件中, #include <*>所有实例都*: No such file or directory

我敢肯定它只是某种简单的解决方法,但是.mm和.h还不够。

更新:发现将源代码复制并粘贴到新文件中似乎可行。 mm文件(或cpp文件)将编译。 虽然h文件不起作用,但是在出现任何c ++特定代码时都会抛出上述错误。

谢谢!

您可能在一个.m文件中包含(或导入)了h文件。 那些也需要重命名为.mm。

最后,您可能会将所有.m分支命名为.mm。 顺便说一下,cpp文件可以简单地保留为cpp。 没有理由重命名它们。

我不知道到底要得到什么错误,而不是将扩展名为.hpp和.cpp的文件添加到项目中,而是将头文件的扩展名更改为.h,并将扩展名更改为.cpp文件转换为.mm或.M,以便Xcode将其识别为Objective-C ++文件,并进行适当的编译。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM