簡體   English   中英

如何在Objective-C項目中的Xcode中編譯+鏈接C ++代碼?

[英]How do I compile + link C++ code in Xcode in an Objective-C project?

我有一個包含很多Obj-C源代碼和一些.cpp文件的iOS項目。 我在Xcode 6中創建了一個C ++類CalibrationFileReader ,該類具有.h.cpp文件。 我可以從我的Objective-C代碼中使用該類。

我還有第二對C ++文件( stereo_v3.hppstereo_v3.cpp ),它們不包含類,而僅包含靜態函數。 我從外面添加到項目中的那些。 當我嘗試使用其中一個功能( computePoseDifference )時,它可以正常編譯,但是Xcode拒絕鏈接,抱怨

Undefined symbols for architecture arm64:
  "computePoseDifference(cv::Mat const&, cv::Mat const&, cv::Mat&, cv::Mat&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:

我嘗試過的事情:

  1. 在Xcode中創建文件並將原始代碼粘貼到其中
  2. 手動將.cpp文件添加到針對我的目標的“ 構建階段中的 編譯源”中(參見圖像)。 在此處輸入圖片說明

都沒有解決問題。

好吧,事實證明Xcode不是罪魁禍首,而是我在函數聲明之前加上了static修飾符。 所以這個問題還為時過早。 我應該知道,但是當然,靜態鏈接使它們對於其他翻譯單元不可見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM