![](/img/trans.png)
[英]How can I use my custom types (C++) in an objective-c project with xcode?
[英]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.hpp
, stereo_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:
我嘗試過的事情:
.cpp
文件添加到針對我的目標的“ 構建階段中的 編譯源”中(參見圖像)。 都沒有解決問題。
好吧,事實證明Xcode不是罪魁禍首,而是我在函數聲明之前加上了static
修飾符。 所以這個問題還為時過早。 我應該知道,但是當然,靜態鏈接使它們對於其他翻譯單元不可見。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.