python调用c++静态库_Python/C++绑定,如何与静态库链接静态C++库(PARTAUDIO)?

我试图将“C++ PARTUUDO库”链接到我的“C++演示模块”,这是一个Python可调用的库(模块)。在

我使用distutils执行此操作,为了执行静态链接,我将libportaudio添加到extra\u objects参数中,如下所示:module1 = Extension(

"demo",

sources=cppc,

# TODO remove os dependency

extra_compile_args=gccArgs,

# link against shared libraries

#libraries=[""]

# link against static libraries

extra_objects=["./clib-3rd-portaudio/libportaudio.a"]) # << I've added the static lib here

用“python”编译设置.py“生成”将导致以下链接器错误:

/usr/bin/ld:./clib-3rd-portaudio/libportaudio.a(pa_front.o):将R_X86_64_32重新定位到`。罗达塔.str1.8'不能在生成共享对象时使用;请使用-fPIC重新编译

/clib-3rd-portaudio/libportaudio.a:添加符号时出错:值错误

collect2:错误:ld返回1退出状态

因此,在这一点上,我尝试了显而易见的方法,将-fPIC标志添加到gccArgs中(注意上面的extra_compile_args=gccArgs),如下所示:

^{pr2}$

但是这会导致完全相同的错误,所以我猜-fPIC标志不是根本原因。我可能遗漏了一些琐碎的东西,但我有点迷路了,希望有人能帮忙。在

你可能感兴趣的:(python调用c++静态库)