为什么我不能编译这个 C API (NeMo Spiking Neural Network Simulator)

Why can't I compile this C API (NeMo Spiking Neural Network Simulator)

您好,我正在尝试利用这个库 http://nemosim.sourceforge.net 来玩转 Spiking 神经网络。

我是 C 和 C++ 的新手。

我所做的是,从这里下载安装程序:http://sourceforge.net/projects/nemosim/

已安装。

然后我在 main.c 文件中编写了这个程序:

#include<nemo.h>
#include<stdio.h>
#include<stdlib.h>

main()
{
    printf("Hello World!");
    getchar();      
}

并在 Windows 上使用 MinGW 编译它:

gcc -I"C:\Program Files (x86)\NeMo\include" main.c -o main.exe

我收到以下错误:

In file included from main.c:1:0:
C:\Program Files (x86)\NeMo\include/nemo.h:48:1: error: unknown type name 'nemo_
network_class'
 typedef nemo_network_class* nemo_network_t;
 ^
C:\Program Files (x86)\NeMo\include/nemo.h:49:1: error: unknown type name 'nemo_
simulation_class'
 typedef nemo_simulation_class* nemo_simulation_t;
 ^
C:\Program Files (x86)\NeMo\include/nemo.h:50:1: error: unknown type name 'nemo_
configuration_class'
 typedef nemo_configuration_class* nemo_configuration_t;
 ^

请帮助我。

看起来nemo.h有问题,但我怀疑我遗漏了什么,因为我是新手...

看起来这段代码有一个 C++ 程序员迁移到编写 C 代码时发生的常见错误。在C++中,可以这样写声明一个struct nemo_network_class对象,例如:

nemo_network_class foo;

然而,在 C 中,struct 是类型标识符的一部分。你必须写:

struct nemo_network_class foo;

改变这个:typedef nemo_network_class* nemo_network_t;

...为此:typedef struct nemo_network_class* nemo_network_t;

改变这个:typedef nemo_simulation_class* nemo_simulation_t;

...为此:typedef struct nemo_simulation_class* nemo_simulation_t;

改变这个:typedef nemo_configuration_class* nemo_configuration_t;

...为此:typedef struct nemo_configuration_class* nemo_configuration_t;


完成这些更改并确认它们有效后,请提交错误报告,以便将此解决方案投入生产。