Cython编译失败,/usr/bin/ld:找不到

2024-10-03 23:18:13 发布

您现在位置:Python中文网/ 问答频道 /正文

出错说明:

/usr/bin/ld: cannot find -lnumsolver
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

运行时:

^{pr2}$

我的“库文件”是numsolver.h,numsolver.c,numsolver.o,numsolver.so在

用Cython文件:cy_rbisect.pxd公司,塞浦路斯_rbisect.pyx公司. 在

我已经运行了导出LD_LIBRARY_PATH='/PATH/to/numsolver.so“所以我不确定我在这里哪里出了问题。。。 我的代码以前确实可以工作,但后来我重命名了所有文件,分别更新了头/c/pyx/pxd文件并重新编译。从那以后就没用了。在


Tags: 文件pathbinsousrstatusexit公司
1条回答
网友
1楼 · 发布于 2024-10-03 23:18:13

编辑

我自己没有用过cython,但我发现了这个:Using Cython To Link Python To A Shared Library

这可能有助于您使用自定义共享库编写正确的setup.py。我的解决方案是共享库和如何编译。在


旧答案

你是如何编辑你的图书馆的?要使链接器在非标准路径中找到库,必须使用-L选项。因此gcc命令应该如下所示:

gcc <your *.o files> <your other options> -L /path/to/ -lnumsolver

LD_LIBRARY_PATH必须具有库所在的目录路径。文件名必须以lib开头。因此,将您的So文件重命名为/path/to/libnumsolver.so,并设置LD_LIBRARY_PATH='/path/to/。当您尝试执行程式码时,应该使用这个变数。在

看看Shared libraries with GCC on Linux

相关问题 更多 >