Having trouble compiling mknrndll
Posted: Tue Jun 09, 2015 10:04 am
Beginner here. I am having trouble compiling mknrndll on a particular Windows 7 64 bit machine. As an example, this code here doesn't seem to want to compile and spits out the following error message:
This error message is generated using Neuron 7.3 cygwin 64bit version, although I have tried all 7.4 and 7.3 distributions (32 and 64 bit) and they gave the same error message. The code compiles on a different Windows 7 64 bit machine so it's really confusing me. Is this implicative of a missing component in my setup?
Code: Select all
gcc -DDLL_EXPORT -DPIC -I/cygdrive/c/nrn73/src/scopmath -I/cygdrive/c/nrn73/src/nrnoc -I/cygdrive/c/nrn73/src/oc -I/cygdrive/c/nrn73/lib -I/cygdrive/c/nrn73/gccinc -I/cygdrive/c/nrn73/gcc3inc -L/cygdrive/c/nrn73/gcclib -c mod_func.c
gcc -DDLL_EXPORT -DPIC -I/cygdrive/c/nrn73/src/scopmath -I/cygdrive/c/nrn73/src/nrnoc -I/cygdrive/c/nrn73/src/oc -I/cygdrive/c/nrn73/lib -I/cygdrive/c/nrn73/gccinc -I/cygdrive/c/nrn73/gcc3inc -L/cygdrive/c/nrn73/gcclib -c ca1ih.c
ca1ih.c:67:2: error: unknown type name ‘IntFunc’
static IntFunc hoc_intfunc[] = {
^
ca1ih.c:68:2: error: excess elements in struct initializer
"setdata_hcurrent", _hoc_setdata,
^
ca1ih.c:68:2: error: (near initialization for ‘hoc_intfunc’)
ca1ih.c:69:2: error: excess elements in char array initializer
"rates_hcurrent", _hoc_rates,
^
ca1ih.c:69:2: error: (near initialization for ‘hoc_intfunc’)
ca1ih.c:69:2: error: excess elements in struct initializer
ca1ih.c:69:2: error: (near initialization for ‘hoc_intfunc’)
ca1ih.c:70:2: error: excess elements in struct initializer
0, 0
^
ca1ih.c:70:2: error: (near initialization for ‘hoc_intfunc’)
ca1ih.c:71:1: error: excess elements in struct initializer
};
^
ca1ih.c:71:1: error: (near initialization for ‘hoc_intfunc’)
ca1ih.c:71:1: error: array of inappropriate type initialized from string constant
ca1ih.c: In function ‘_ca1ih_reg’:
ca1ih.c:148:3: warning: passing argument 3 of ‘hoc_register_var’ from incompatible pointer type [enabled by default]
hoc_register_var(hoc_scdoub, hoc_vdoub, hoc_intfunc);
^
In file included from /cygdrive/c/nrn73/src/oc/hocdec.h:271:0,
from /cygdrive/c/nrn73/src/nrnoc/section.h:40,
from ca1ih.c:10:
/cygdrive/c/nrn73/src/oc/oc_ansi.h:102:13: note: expected ‘struct VoidFunc *’ but argument is of type ‘int *’
extern void hoc_register_var(DoubScal*, DoubVec*, VoidFunc*);
^