我用C++編寫代碼,我想在我的IOS應用程序中使用它的一些方法,因此可以將C++庫「t.cpp」導入到XCode中的IOS應用程序? 如果是的什麼是簡單的方法來做到這一點?將C++代碼導入IOS應用程序
1
A
回答
2
是的,這將工作沒有錯誤,但您可能需要更改Xcode C++編譯器設置(語言級別和運行時庫),具體取決於您使用的iOS版本。
當涉及到在Objective-C代碼中實際使用C++類時,您只需將任何文件從.m
重命名爲.mm
即可。
當您想要在Objective-C頭文件中包含C++頭文件時,會發生複雜問題,其中.m
和.mm
都會看到Objective-C頭文件。在這種情況下,您可能會發現需要將更多文件從.m
更改爲.mm
才能使其正常工作,但如果這種方式過於繁重,則可以採用其他方法。
0
只需將文件添加到項目。
0
只有在translation unit包含C++頭文件時,您才需要從.m和.mm中重命名文件。然後,模塊被C++「感染」,需要使用Objective-C++編譯器進行編譯。
只有在任何C++頭文件將直接或間接地從該模塊包含/導入時才需要。沒有必要重命名全部文件。此外,如果此C++代碼依賴於C++標準庫,則還需要通過在可執行二進制文件中設置適當的構建設置,確保可執行二進制文件與C++標準庫鏈接。
例如,在您的應用程序的目標構建設置,下面的選項添加到其它鏈接器標記:
-lc++
如:
OTHER_LDFLAGS = -ObjC -lc++
注意:
如果可能的,不要在一個public Objective-C頭文件中包含/導入C++頭文件,因爲所有模塊在導入這個Objective-C頭文件後都會被C++感染,併成爲Objective-C++。
相關問題
- 1. 將F#代碼塊導入到C#應用程序
- 2. 將.ics導入iOS應用程序
- 3. 如何從iOS應用程序將HTML代碼拖入NSString中?
- 4. 如何將ReactJS es6代碼導入Express應用程序?
- 5. 在iOS應用程序中導入libPusher
- 6. iOS應用程序代碼恢復
- 7. IOS應用程序的安全代碼
- 8. C++ DLL導入到C#應用程序
- 9. 如何遠程導入代碼? IOS
- 10. 在iOS的應用程序中使用C++代碼
- 11. 無法從託管引導程序應用程序中的引導程序變量讀取輸入C#代碼
- 12. Win32應用程序調用C代碼
- 13. 反編譯應用程序IOS獲取源代碼 - 目標C
- 14. 在iOS應用程序中編寫C代碼時EXC BAD ACCESS
- 15. C++代碼注入崩潰注入的應用程序
- 16. 將C++代碼導出爲DLL並使用C#導入?
- 17. 如何將C/C++ dll導入到.NET應用程序
- 18. 將數據導入iOS應用程序,現在iCloud已經取代了iTunes
- 19. 將現有的SQLite數據庫導入iOS Phonegap應用程序
- 20. 將pfx文件導入到iOS應用程序中
- 21. 將Gmail聯繫人導入iOS應用程序
- 22. 如何將c代碼導入TwinCAT
- 23. 將未編譯的源代碼添加到iOS應用程序
- 24. .NET應用程序中的c#代碼
- 25. 非託管C++代碼導致崩潰到.Net應用程序
- 26. 將一個Android應用程序導入其他應用程序
- 27. 使用代碼將內容導入XNA程序?
- 28. 將Django json導入iPhone應用程序
- 29. 將aws4導入Angular2應用程序
- 30. 將FacebookSDK導入Swift應用程序
爲了避免將C++頭文件暴露給太多其他文件,我喜歡編寫包裝相應C++類或功能的Objective-C類。然後,理想情況下,C++頭文件只包含在包裝文件的'.mm'文件中,Objective-C包裝類的'.h'文件有一個很好的乾淨的界面,沒有提示C++。 –
@esker聽起來像一個很好的解決方案。 – trojanfoe