为什么我不能编译这个C API(NeMo Spiking神经网络模拟器)

时间:2015-07-01 14:51:46

标签: c compilation neural-network

您好我正在尝试使用此库http://nemosim.sourceforge.net来使用Spiking Neural Networks。

我是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有问题,但我怀疑我错过了什么,因为我是新手......

1 个答案:

答案 0 :(得分:1)

当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;

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