我正在尝试编译pyx代码以在Windows 64计算机上获取python的pyd / dll文件。我正在命令窗口中逐步执行此操作,以找出错误的地方。

我成功地将pyx转换为一个名为samplers.c的c文件。然后进入.o文件。我相信我要编译共享对象(pyd)的最后一步,但是由于某些原因,编译器无法读取gsl_rng.h文件中的内容。它显然是gsl库中的目录之一,但由于某种原因找不到它们,并抛出 undefined reference 错误。正如许多论坛帖子所建议的那样,我什至包括了-lgsl -lgslcblas -lm,但仍然没有骰子。

c:\Users\MyName\Anaconda\conda-bld\work>C:\TDM-GCC-64\bin\gcc.exe -DMS_WIN64 -shared -s samplers.o build\temp.win-amd64-2.7\Release\samplers.def -LC:\Users\MyName\Anaconda\gsl\lib -LC:\Users\MyName\Anaconda\libs -LC:\Users\MyName\Anaconda\PCbuild\amd64-lgsl -lgslcblas -lm -lpython27 -lmsvcr90 -o c:\Users\MyName\Anaconda\conda-bld\work\samplers.pyd
samplers.o:samplers.c:(.text+0x1f73): undefined reference to `gsl_rng_uniform'
samplers.o:samplers.c:(.text+0x20a91): undefined reference to `gsl_rng_mt19937'
samplers.o:samplers.c:(.text+0x20a96): undefined reference to `gsl_rng_alloc'
samplers.o:samplers.c:(.text+0x20c75): undefined reference to `gsl_rng_set'
c:/tdm-gcc-64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw /bin/ld.exe: samplers.o: bad reloc address 0x0 in section `.data'
collect2.exe: error: ld returned 1 exit status

最佳答案



命令的各个参数必须用空格分隔,在这种情况下为-L-l参数。

09-05 23:15