現在のC++プロジェクトでは、外部ヘッダーを含めることでレガシーCコードを使用しています。
extern "C" {
# include "ANN/ANN_4t70P1.h"
# include "ANN/ANN_4t70P2.h"
# include "ANN/ANN_4t70P3.h"
# include "ANN/ANN_4t70P4.h"
}
ヘッダーファイルは次のようになります。
extern int ANN_4t70P1(float *in, float *out, int init);
static struct {
int NoOfInput; /* Number of Input Units */
int NoOfOutput; /* Number of Output Units */
int(* propFunc)(float *, float*, int);
} ANN_4t70P1REC = {8,3,ANN_4t70P1};
Cコードは古いバッチファイルによって作成され、C++コンパイラを使用してコンパイルすることはできません。それでも、この実装はWindowsおよびMacOSで正常に機能します。ただし、Linuxでgccとg ++を使用してコードをコンパイルし、アプリケーションを実行すると、ANN_4t70P1RECが誤った値を返します。
プロジェクトをリンクするときに見逃した特別なリンカーフラグはありますか?
ありがとう!