【问题标题】:Can't compile cx_Freeze on a Python built from source无法在从源代码构建的 Python 上编译 cx_Freeze
【发布时间】:2013-06-20 01:28:44
【问题描述】:

这是我的情况。我正在尝试通过cx_Freeze 打包一个用 Python 3.3 编写的 Linux(在 Ubuntu 13.04 上)游戏。美好的。我通过sudo apt-get install cx-freeze 安装了它。即使安装了,也没有出现。所以它是 Python 2 版本。美好的。然后我从网站上下载了源代码并尝试用python3 ./setup.py build 编译它。这就是事情分崩离析的地方。我从编译器得到这个错误:

/usr/bin/ld: cannot find -lpython3.3
collect2: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

我使用的是从源代码编译的 Python 3.3.2。有什么建议吗?

【问题讨论】:

  • 您需要使用共享库构建 Python(这就是它在发行版包中的方式)。如果您在 Ubuntu 中安装 python3python3-dev,它应该可以工作。
  • 不过,我已经安装了它们。
  • 对不起,我正在考虑使用那些而不是你自己编译的版本。使用从源代码编译的 Python 重要吗?如果是这样,您需要找到一个标志来使用共享库编译它,因为我认为这不是默认值。
  • 不,没有必要。我只是从源代码构建的,因为我想用-Ofast 而不是-O3 (我认为)作为deb 编译它。不过,我不确定我安装了哪个 deb(不知道 Python 3.3.2 是否是 Ubuntu 13.04 中的默认版本)。
  • Raring 目前有 3.3.1 - 你可以查看here

标签: python-3.x compiler-errors package cx-freeze


【解决方案1】:

作为答案转发:

一般来说,我建议使用您的发行版中的 Python 包,这些包已经以 cx_Freeze 可以使用的方式编译。在 Ubuntu 中,您可以安装 python3python3-dev

如果您需要编译自己的 Python 解释器,则需要使用共享库对其进行编译,如下所示:

./configure --enable-shared

CPython devguide中有更多编译说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-25
    • 2017-06-03
    • 2022-01-13
    • 2013-12-08
    • 2023-03-16
    • 2015-01-21
    • 2018-09-20
    • 1970-01-01
    相关资源
    最近更新 更多