在Linux上从C链接到python 2.7
发布时间:2020-12-13 23:25:58 所属栏目:Linux 来源:网络整理
导读:您好我在 Linux系统上链接我的.so文件 Python时遇到问题. (我在MacOS X和Windows上运行得很好,但我坚持这个) 目前链接标志如下: LIBS = -L/usr/local/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -L$(GTKLIBPREF
您好我在
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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |