かなり長い間いくつかの c / c++ コードを使用しており、プロジェクトで正常に動作しています。コードから .a を作成しようとしていますが、1 つの項目を除いてすべて問題ありません。
ACルーチンがあります、それを呼びましょう
void init(sometype *)
これは XCODE で c++ ファイルとしてマークされ、.h ファイルがあります。
そこには
#if defined(__cplusplus)
extern "C"
{
#endif
void init(sometype *);
#if defined(__cplusplus)
}
#endif
このすべてのリンクは、すべてを 1 つのアプリとしてリンクするときに目的の C から呼び出したときに見つかります
このコードが .a に含まれていて、別のプロジェクトからリンクしようとすると、....
Undefined symbols for architecture armv6:
"__Znam", referenced from:
_init in libMy.a(Objectfile.o)
ld: symbol(s) not found for architecture armv6
clang: error: linker command failed with exit code 1 (use -v to see invocation)
C++ の初期化ルーチンを取得しているように見えますか? find をリンクしたときの .o は、.a 用にコンパイルしたときと同じように見えます (__Znam はそこにあります)。
それで、どのライブラリが欠けていますか????
舞台裏に含まれていないものを見つけるために、さらに掘り下げます。
- - - - - 新情報 - - - - - -
問題は、「new」キーワードがこのルーチンで機能していないことであり、これはおそらく適切にリンクされていないルーチンです。
だから、次のような行...
var->output = new Int32*[10];
正常に動作していません。.....