C/C++/Qt与 Python 混合编程(5):linux 类平台的 Python环境的获取

要将Python解释器嵌入到应用程序中,找到传递给编译器(和链接器)的正确标志并不一定是件小事,特别是因为Python需要加载作为C动态扩展(dynamic extensions, C dynamic extensions)实现的库模块。因此啊,你必须正确地找到动态扩展库文件.so 或者.o 文件吧。

  1. 查找到编译链接的环境

直接运行 pythonx.y-config 命令即可。例如本系统是 python3.7,所以运行的是 python3.7-config

1.1 查找编译的标志

这些都可以放到 INCLUDE 中

$python3.7-config --cflags

-I/anaconda3/include/python3.7m -I/anaconda3/include/python3.7m -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/anaconda3/include -arch x86_64 -I/anaconda3/include -arch x86_64

1.2 查找链接的标志

这个就是链接所需要的库,QT 中 pro 增加到 LIBS中

$python3.7-config --ldflags

-L/anaconda3/lib/python3.7/config-3.7m-darwin -lpython3.7m -ldl -framework CoreFoundation -Wl,-stack_size,1000000 -framework CoreFoundation

注意:

为了避免几个Python安装之间的混淆(特别是在系统Python和您自己编译的Python之间),建议使用绝对路径的pythonX.Y-config,如下所示。

C/C++与 Python 混合编程(5):linux 类平台的 Python环境的获取

 

2. 使用sysconfig.get_makefile_filename()查找它的位置和编译选项

在本例中,sysconfig模块是一个有用的工具,可以通过编程提取您希望组合在一起的配置值。

C/C++与 Python 混合编程(5):linux 类平台的 Python环境的获取

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值