Linux主机用mingw32交叉编译Boost.Python:jam配置读取环境变量
交叉编译Boost.Python:通过环境变量配置Python依赖路径
我在Linux主机上用x86_64-w64-mingw32交叉编译Boost.Python时,也碰到过不想硬编码路径、想用环境变量动态读取Python依赖的需求。看你贴的user-config.jam代码没写完,我来补全并修正一下正确的写法:
首先,先在终端里设置好你的环境变量(如果想永久生效,可以把这条命令加到~/.bashrc或~/.profile里):
export PYTHON_DEPS="/你的Python依赖根目录路径"
然后把user-config.jam改成下面的完整写法:
import os ; # 从环境变量中读取Python依赖的根路径 local PYTHON_DEPS_ROOT = os.environ[PYTHON_DEPS] ; # 配置Python工具链:依次是版本号、解释器路径、头文件目录、库文件目录 using python : 2.7 : /usr/local/bin/python2.7 : $(PYTHON_DEPS_ROOT)/usr/include/python2.7 : $(PYTHON_DEPS_ROOT)/usr/lib ;
这里还有几个细节要注意:
- 要确认
$(PYTHON_DEPS_ROOT)/usr/lib下存在对应交叉编译版本的Python库文件(比如针对mingw的libpython2.7.dll.a),如果你的库路径不在usr/lib,要改成实际的路径 - 执行Boost的
b2编译命令前,要确保当前shell环境中PYTHON_DEPS变量是有效的,不然Jamfile会找不到依赖路径
内容的提问来源于stack exchange,提问作者sbunny
相关产品推荐
相关产品推荐

