2

我已经安装了Gambit python 接口的依赖项,但是在尝试构建 gambit 库时出现 config.h 错误(见下文)。我正在运行 Yosemite 10.10.13 并在 MacBook Air (2014) 上使用终端。

这是错误消息:

172-16-226-146:python hsl306$ python setup.py build
running build
running build_py
running build_ext
skipping 'gambit/lib/libgambit.cpp' Cython extension (up-to-date)
building 'gambit.lib.libgambit' extension
/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -Os -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I../.. -I.. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c gambit/lib/libgambit.cpp -o build/temp.macosx-10.10-x86_64-2.7/gambit/lib/libgambit.o
In file included from gambit/lib/libgambit.cpp:247:
../libgambit/libgambit.h:30:11: fatal error: 'config.h' file not found
 #include <config.h>
          ^
1 error generated.
error: command '/usr/bin/clang' failed with exit status 1
4

2 回答 2

2

我只是设法让 Gambit 库在我的命令行中工作。

安装过程中可能会遇到很多步骤和错误:

  1. 正如@theycallhimtom 所说,问题是您需要先构建 Gambit,然后才能构建 python 接口。按照链接中的说明首先构建 Gambit。
  2. 在构建时,您可能会遇到从 Github 克隆 Gambit 到本地环境并进入目录后无法运行 ./configure 的错误。
  3. 您必须安装它们需要安装的 3 个工具/依赖项:autoconf、automake 和 libtool。所有这些都可以使用 brew install ...(brew install autoconf、brew install automake 和 brew install libtool)安装
  4. 安装后您应该尝试运行 aclocal。如果它不起作用,则需要在克隆的 Gambit 目录中使用 mkdir m4 创建一个 m4 目录(确保已安装 m4,如果未安装,则使用 brew install m4 或从 Github 克隆它)
  5. 安装 m4 目录后,尝试运行 libtoolize。如果它有效,那很好。如果没有,只需将“g”添加到 libtoolize 以使其 glibtoolize 即可工作(有时编程就像魔术一样)
  6. 之后,如果正确安装, automake 和 autoconf 应该可以正常工作。
  7. 尝试运行 ./configure 和 sudo make install 将 Gambit 构建到您的系统中。你在这里应该没有问题。
  8. 使用 cd src/python 进入 Python 目录,然后尝试运行 python setup.py build。
  9. 在这一点上,你可能会得到一个错误,说 gcc 无法编译,或者类似的东西。不要恐慌。只需打开发现错误的文件(应该是 c++ 文件),然后手动更正这些错误。应该是大约 20 个错误。您需要做的就是在直角括号中添加空格(至少我是这样做的)
  10. 运行 sudo python setup.py install,你应该终于可以将 Gambit 库安装到 Python 中了。
  11. 不要遵循他们在此页面上的文档。它已经过时并且不起作用。改用他们的Github 页面

这就是我如何让 Gambit 库在 Python 中为我工作,希望它对你有用!

于 2015-10-05T10:50:24.923 回答
0

我得到了同样的错误。问题是您需要先构建 Gambit,然后才能构建 python 接口。按照http://www.gambit-project.org/gambit15/build.html顶部的说明进行操作。

于 2015-09-12T02:58:31.657 回答