在Linux上从C链接到python 2.7

在Linux上从C链接到python 2.7,第1张

概述您好我在 Linux系统上链接我的.so文件 Python时遇到问题. (我在MacOS X和Windows上运行得很好,但我坚持这个) 目前链接标志如下: LIBS = -L/usr/local/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -L$(GTKLIBPREFIX) 您好我在 Linux系统上链接我的.so文件 Python时遇到问题. (我在MacOS X和windows上运行得很好,但我坚持这个)

目前链接标志如下:

liBS = -L/usr/local/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -L$(GTKliBPREFIX) -L/usr/X11R6/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -rdynamic -lgmodule-2.0 -lglib-2.0 -ldl -lXi -lXext -lX11 -lm

并且编译标志设置为:

PYTHON =  /usr/local/include/python2.7 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes

使用我构建的so文件将导致未解析的符号.

然后我想在构建so文件上做ldd因为我认为我应该在这里看到python?

我得到的是这个:

linux-gate.so.1 =>  (0xffffe000)    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7f3f000)    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7f3b000)    libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0xb7f36000)    libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7be6000)    libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7b62000)    libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7b5e000)    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7acc000)    libXi.so.6 => /usr/lib/libXi.so.6 (0xb7ac4000)    libXext.so.6 => /usr/lib/libXext.so.6 (0xb7ab7000)    libX11.so.6 => /usr/lib/libX11.so.6 (0xb79ed000)    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb79c7000)    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb78e8000)    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb78dd000)    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb77a9000)    /lib/ld-linux.so.2 (0x80000000)    libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7793000)    libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb778a000)    libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7750000)    libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7736000)    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb76fc000)    libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb769a000)    libFontconfig.so.1 => /usr/lib/libFontconfig.so.1 (0xb766b000)    libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7662000)    libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb765f000)    libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb765c000)    libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb7653000)    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb764e000)    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7644000)    libXau.so.6 => /usr/lib/libXau.so.6 (0xb7641000)    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb763c000)    libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7611000)    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb75a7000)    libz.so.1 => /usr/lib/libz.so.1 (0xb7593000)    libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb756e000)    libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7550000)

没有提示Python.

通过执行以下 *** 作找到链接器标志:

/usr/local/lib/python2.7/config$python2.7-config --ldflags

有谁知道我在做错了什么? (注意linux make文件对我来说真的不强)

解决方法 考虑添加链接标志:   -Wl,-R /家/我/ mylibdir 另请参见LD_RUN_PATH 总结

以上是内存溢出为你收集整理的在Linux上从C链接到python 2.7全部内容,希望文章能够帮你解决在Linux上从C链接到python 2.7所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1019731.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存