我正在尝试编译一个pyx代码,以便在我的Windows 64机器上为python获取一个pyd/dll文件。我正在命令窗口中一步一步地做这件事,以找出它的错误所在。
我成功地将pyx转换成一个名为samplers.c的c文件。然后进入一个.o文件。在最后一步,我相信编译共享对象(pyd),但由于某种原因,编译器无法读取gsl_rng.h文件中的内容。它显然包含在gsl库中的一个目录中,但由于某种原因无法找到它们并抛出未定义的引用错误。我甚至包括了-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发布于 2014-11-21 18:03:28
-LC:\User\MyName\Anaconda\PCbuild\amd64 64-lgsl.
命令的单个参数必须用空格分隔,在本例中是-L和-l参数。
https://stackoverflow.com/questions/27067376
复制相似问题