将静态C++库包含到目标C项目中 我想创建一个C++ SO库,并将其包含在我的目标C代码中。我在XCode工作。 这里是C++代码:

将静态C++库包含到目标C项目中 我想创建一个C++ SO库,并将其包含在我的目标C代码中。我在XCode工作。 这里是C++代码:,c++,objective-c,shared-libraries,C++,Objective C,Shared Libraries,-------core.cpp----- #include <vector> #include <algorithm> extern "C" void my_sort(std::vector<int>& a) throw() { sort(a.begin(), a.end()); // this is std::vector's sort function } 因此,我想创建So库,以便将其包含在Obejctive C代码中。 如何包含或导入它

-------core.cpp-----

#include <vector>
#include <algorithm>

extern "C" void my_sort(std::vector<int>& a) throw()
{
 sort(a.begin(), a.end()); // this is std::vector's sort function 
}
因此,我想创建So库,以便将其包含在Obejctive C代码中。 如何包含或导入它。。我想调用我的_排序函数


谢谢

这里的问题是函数有外部C链接。因此,它不能使用STD::vector的参数,也不使用抛出声明,因为这些是C++的东西。 要将其包含到目标C代码中,必须编写附带的头文件,该头文件将声明导出的函数。一旦您从接口中删除所有引用C++,将更容易导出它。它也将避免需要包括C++头。
然后,要从您的目标C代码中使用它,请包含您的头文件,并将链接器信息提供给您的库。

我已经完成了所有这些,但链接在Xcode中似乎是模糊的。使用Xcode提供链接器信息实际上意味着什么?