我想创建一个C ++ so库并将其包含在Objective C代码中。我在XCode工作。 这是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代码中。 如何包含或导入? ..我想调用my_sort()函数?
谢谢!答案 0 :(得分:0)
这里的麻烦是你的功能有外部C链接。因此,它不能使用std::vector
类型的参数,也不能使用throw
声明,因为它们是C ++的东西。
要将其包含在您的目标C代码中,您必须编写附带的头文件,该文件将声明您的导出函数。一旦从其界面中删除了对C ++的所有引用,它将更容易导出。它还将避免包含C ++标头。
然后,要从Objective C代码中使用它,请#include您的头文件,并将链接器信息提供给您的库。