簡體   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