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标志不是根本原因。我可能遗漏了一些琐碎的东西,但我有点迷路了,希望有人能帮忙。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值