在this question的续集问题中,我的公司环境缺少libpython2.6.so
共享库,但是具有libpython2.6.a
文件。有没有一种方法可以在libpython2.6.a
中进行编译,同时将符号保留在libpython2.6.a
中,以便动态库可以在运行时找到这些符号?
我当前使用静态库进行的编译如下:
g++ -I/usr/CORP/pkgs/python/2.6.2/include/python2.6 \
~/tmp.cpp -pthread -lm -ldl -lutil \
/usr/CORP/pkgs/python/2.6.2/lib/python2.6/config/libpython2.6.a \
-o tmp.exe
但是,如果我加载“数学”之类的模块,它将死于:
undefined symbol: PyInt_FromLong
最佳答案
您需要将--export-dynamic
传递给链接器。所以来自g++
g++ -Wl,--export-dynamic ...
关于python - 如何链接到libpython.a,以便运行时链接程序可以找到libpython.a中的所有符号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1472828/