I'm trying to create a shared library for python using ctypes. The following command works fine for my purpose:
gcc -g -fPIC -Wall -Wextra -pedantic *.c -shared -o cfunctions.so
However, when I use #include <cblas.h>, I get the following errors:
cfunctions.c:184:12: error: expected identifier or ‘(’ before ‘__extension__’
184 | int I=0;
| ^
cfunctions.c:192:15: error: invalid operands to binary <= (have ‘complex float’ and ‘int’)
192 | while(I<=index && e <= o) {
| ^~
I just have a vague understanding of programing, so I guess the letter I is used by cblas to define some data type. Does anyone know what is the problem here? I guess I need to change all of the variables named "I" to something else, but I'm not sure if it fix my problem.
The
complex float
type in the message hints atI
coming from the<complex.h>
header.https://en.cppreference.com/w/c/numeric/complex/I
Yet another reason for not using all uppercase in identifiers - they could be macros defined somewhere else.