【发布时间】:2017-10-24 14:19:18
【问题描述】:
我的最终目标是让 python 包 graph_tool 在我的系统上运行,如果可能的话也在 ipynb 上运行。我已经有brew install graph-tool、as indicated here,但还是不够。
所以我关注conda instructions here,并取得了不错的进展,直到遇到配置的编译器问题。
$ conda create -n py36env python=3.6.3 anaconda
(py36env) $ conda install -c conda-forge cgal
... and so forth with the other required libraries
(py36env) Tams-MacBook-Pro:graph-tool-2.25 tamtam$ ./configure --prefix=/Users/tamtam/anaconda3/envs/py36env/ --with-python-module-path=/Users/tamtam/anaconda3/envs/py36env/lib/python3.6/site-packages
.
.
.
checking whether g++ supports C++14 features by default... no
checking whether g++ supports C++14 features with -std=gnu++14... no
checking whether g++ supports C++14 features with -std=gnu++1y... no
configure: error: *** A compiler with support for C++14 language features is required.
我对编译器的东西不是很熟悉,但我检查我的系统如下:
(py36env) Tams-MacBook-Pro:graph-tool-2.25 tamtam$ conda list | grep gcc
gcc 4.8.5 8
在 conda 环境之外:
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/Users/tamtam/anaconda3/envs/py36env/bin/../libexec/gcc/x86_64-apple-darwin11.4.2/4.8.5/lto-wrapper
Target: x86_64-apple-darwin11.4.2
Configured with: ./configure --prefix=/Users/ray/mc-x64-3.5/conda-bld/gcc-4.8_1477649012852/
Thread model: posix
gcc version 4.8.5 (GCC)
还有 Homebrew
$ brew list --versions | grep gcc
gcc 7.1.0 7.2.0
$ /usr/local/bin/gcc-7 --version
gcc-7 (Homebrew GCC 7.2.0) 7.2.0
$ echo $PATH
/Users/tamtam/anaconda3/bin:/Users/tamtam/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin
所以我的问题是:包含编辑
1) 我系统上的conda gcc 4.8.5 和Homebrew gcc 7.2 有什么区别?我很困惑,因为它们都是最新的软件包。
编辑:我在网上阅读的任何地方都没有明确说明这一点,但我理解(又名有根据的猜测,因为现在是凌晨 3 点,我需要睡觉)conda gcc 4.8.5 相当于brew gcc 4.8.5,而 Anaconda 在开发“官方的 gcc 支持 C++14。与此同时,我 conda install -c salford_systems gcc-5 和 ./configure 似乎发现自己是一个 C++14 编译器。是的(但这也让我遇到了一个新问题 T.B.A.)
注意:我还尝试使用conda gcc 4.8.5 和brew gcc 7.2.0 运行./configure 文件(切换默认gcc 编译器guided here),但./configure 的错误仍然相同,没有找到C++14 编译(所以忽略这)
2)我也有Xcode 8.3.3,它也带有clang,这是gcc符号链接到的......??不知道设置/关系
3) 如何调整我的系统(例如路径),以便配置过程能够检测到 C++14 编译器?编辑:按 1)
【问题讨论】:
-
您在询问之前是否做过任何研究?输出非常自描述,查找它的编译器要求以及如何指定要使用的编译器。如果您不知道 Brew 和 Anaconda 是如何操作和关联的(提示:它们完全相互独立,没有兼容性保证),这表明您甚至不需要查找它们的基本信息。表现出一些努力。
-
也就是说,您没有遵循“此处的 conda 指令”,它指示从源代码针对 Anaconda 的 Python 编译
graph-tool。您必须决定是否更愿意将graph-tool与 Homebrew's 或 Anaconda 的生态系统一起使用 - 哪个更适合您的需求。 -
嗨,Ivan,您在回答之前阅读了我的问题吗?我特别问了
conda gcc 4.8.5vsbrew gcc 7.2,而不是conda vs brew。当然,很容易从 Anaconda 或 Homebrew 中选择一个功能正常的graph-tool,但就像我详细提出的问题一样,Homebrew 版本目前无法正常工作,我在安装 Anaconda 版本时遇到了问题。这就是为什么我在 SO 上寻求帮助,而不是你毫无根据的批评。 -
是的,Ivan,我之前确实做过研究。特别是您没有看到的研究工作,因此无法判断。即使进一步的研究可以让我得到答案,询问那些更有经验的人的知识也没有错。 (我有没有提到我是初学者?)请帮助将 SO 作为一个支持平台。
-
我只能看到你在问题中写的内容,我(仍然)无法读心。我不知道为什么 Homebrew 的
graph-tool对你来说“不够”。brew应该已经安装了所有依赖项,所以它应该可以正常工作,并且是一种简单的方法,因为您可能不需要手动编译任何东西。我确实错过了您在 anaconda 的环境中编译图形工具 - 为此,我深表歉意。
标签: macos gcc c++14 homebrew conda