【发布时间】:2020-11-05 21:15:52
【问题描述】:
我编写了一个混合 Python 3 和 C++ 的程序。我在 Windows 上使用 boost-python 1.62 和 mingw。到目前为止,我已经在很多很多机器上编译了 C++ python 库,它一直运行良好。现在我将源代码提供给一位同事在他的机器上安装,编译失败,mingw 抱怨符号问题和“文件格式无法识别”。
不过,我看到的是以下内容:在我的机器上,b2 在编译开始时报告了这一点:
- 32 位:否(缓存)
- 64 位:是(缓存)
- arm : 否(缓存)
- mips1:否(缓存)
- 电源:否(缓存)
- sparc:否(缓存)
- x86:是(缓存)
- 支持符号链接:是的
在我同事的机器上是这样的:
- 32 位:是(缓存)
- arm : 否(缓存)
- mips1:否(缓存)
- 电源:否(缓存)
- sparc:否(缓存)
- x86:是(缓存)
- 支持符号链接:是的
我很确定问题与他的系统试图编译 32 位代码并试图将现有的 64 位代码链接到它有关。但问题是,为什么它首先要编译 32 位代码?机器不到一年,所以肯定是64位的。然而,更重要的问题是,如何说服机器编译为 64 位?
顺便说一下,这是我的 user-config.jam:
using python : 3.6 : C:\\StreamTest\\WinPython-64bit-3.6.6.2\\python-3.6.6.amd64\\python.exe
: C:\\StreamTest\\WinPython-64bit-3.6.6.2\\python-3.6.6.amd64\\include
: C:\\StreamTest\\WinPython-64bit-3.6.6.2\\python-3.6.6.amd64\\libs
: ;
【问题讨论】:
-
你的同事应该安装 MinGW-W64 (mingw-w64.org/doku.php)。是这样吗?
-
我已经更新了我的答案。
-
是的,我的同事正在运行与我完全相同的软件。
标签: python boost mingw boost-python