2010-12-02 8 views
1

C++ソートライブラリを作成し、それをObjective Cコードに組み込みたいとします。私はXCodeで働いています。Objective Cプロジェクトへの静的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 
} 

だから私は作成したい:ここ は、C++のコードでありますこれをObejctive Cコードに含めるためのライブラリです。 それを組み込む方法やインポートする方法は? ..私はmy_sort()関数を呼び出したいですか?

THanks!

答えて

0

ここでの問題は、関数に外部Cリンケージがあることです。したがって、タイプstd::vectorの引数を使用することはできません。どちらもthrowの宣言はC++のものなので使用できません。

目的のCコードに含めるには、エクスポートされた関数を宣言する添付のヘッダーファイルを記述する必要があります。インターフェイスからC++への参照をすべて削除すると、エクスポートするほうがずっと簡単になります。また、C++ヘッダーを含める必要もありません。

Objective Cコードから使用するには、ヘッダーファイルを#includeし、ライブラリにリンカー情報を渡します。

+0

私はこれをすべてやったが、リンクはXcodeでFUBARのようだ。 「リンカー情報を与える」とは、実際にはXcodeで意味しますか? – Adam

関連する問題