[英]Include static C++ library to Objective C project
我想創建一個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()函數嗎?
謝謝 !
這里的問題是您的函數具有外部C鏈接。 因此,它不能使用std::vector
類型的參數,也不能throw
聲明,因為它們是C ++的東西。
要將其包含在目標C代碼中,必須編寫隨附的頭文件,該文件將聲明導出的函數。 一旦從其接口中刪除了對C ++的所有引用,將其導出將更加容易。 它還將避免需要包含C ++頭文件。
然后,要從您的Objective C代碼中使用它,請#include您的頭文件,並將鏈接器信息提供給您的庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.