我在当前的 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 和 Mac OS。但是,当我在 Linux 上使用 gcc 和 g++ 编译代码并运行应用程序时,ANN_4t70P1REC 返回不正确的值。
链接项目时是否有任何我错过的特殊链接器标志?
谢谢!