我有一个包含大量Obj-C源和一些.cpp
文件的iOS项目。
有一个C ++类CalibrationFileReader
,我在Xcode 6中创建,它有一个.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
文件添加到编译源(参见图像)。
没有解决问题。
答案 0 :(得分:0)
好吧,事实证明Xcode不是罪魁祸首,但static
修饰符我以函数的声明为前缀。所以问题还为时过早。我应该知道,但当然,静态链接使它们对其他翻译单元不可见。