ChemPy:clang:错误:不支持选项“fopenmp”

2024-05-14 03:43:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解决以下问题。当我试图在this ntb中运行以下行时,我得到:

native = get_native(rsys, odesys, 'cvode')

INFO:pyodesys.native._base:Cythonizing /Users/user/Library/Caches/python3.8-pyodesys-0.13.1/_cvode_wrapper.pyx to ./_cvode_wrapper.cpp
INFO:pyodesys.native._base:In "/var/folders/bx/tb4883l53hdd3zp2y0nyy_4m0000gp/T/tmpt2vuw8pg", executing:
"/usr/bin/g++ -fwrapv -pthread -c -std=c++11 -Wall -Wextra -fPIC -O2 -ffast-math -funroll-loops -fopenmp -fno-strict-aliasing -o ./_cvode_wrapper.o -DPYCVODES_NO_KLU=0 -DPYCVODES_NO_LAPACK=0 -DANYODE_NO_LAPACK=0 -I/Users/user/anaconda3/lib/python3.8/site-packages/numpy/core/include -I/Users/jan/anaconda3/lib/python3.8/site-packages/pyodesys/native/sources -I/Users/jan/anaconda3/lib/python3.8/site-packages/pycvodes/include -I/Users/jan/anaconda3/include/python3.8 ./_cvode_wrapper.cpp"
CompilationError: Error executing '/usr/bin/g++ -fwrapv -pthread -c -std=c++11 -Wall -Wextra -fPIC -O2 -ffast-math -funroll-loops -fopenmp -fno-strict-aliasing -o ./_cvode_wrapper.o -DPYCVODES_NO_KLU=0 -DPYCVODES_NO_LAPACK=0 -DANYODE_NO_LAPACK=0 -I/Users/jan/anaconda3/lib/python3.8/site-packages/numpy/core/include -I/Users/jan/anaconda3/lib/python3.8/site-packages/pyodesys/native/sources -I/Users/jan/anaconda3/lib/python3.8/site-packages/pycvodes/include -I/Users/jan/anaconda3/include/python3.8 ./_cvode_wrapper.cpp' in /var/folders/bx/tb4883l53hdd3zp2y0nyy_4m0000gp/T/tmpt2vuw8pg. Command exited with status 1 after givning the following output: clang: error: unsupported option '-fopenmp

我想这可能是那些地方所说的{}和{}的问题({a2},{a3},{a4}),但提议的解决方案({a5},{a6},{a7})对我来说根本不起作用。我还尝试使用conda安装GCC,但我得到:

conda install gcc
PackagesNotFoundError: The following packages are not available from current channels:

  - gcc

Current channels:

  - https://repo.anaconda.com/pkgs/main/osx-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/r/osx-64
  - https://repo.anaconda.com/pkgs/r/noarch

使用homebrew我安装了gcc。。。知道发生了什么以及如何修复它吗?我正在运行MacOS 10.15.7。谢谢


Tags: nohttpsincludelibpackagessitewrapperusers
2条回答

自制的将安装以下内容:

/usr/local/bin/g++-10

您可以使用以下工具准确检查安装的内容和位置:

brew ls gcc

样本输出

/usr/local/Cellar/gcc/10.2.0/bin/c++-10
/usr/local/Cellar/gcc/10.2.0/bin/cpp-10
/usr/local/Cellar/gcc/10.2.0/bin/g++-10
/usr/local/Cellar/gcc/10.2.0/bin/gcc-10
/usr/local/Cellar/gcc/10.2.0/bin/gcc-ar-10
/usr/local/Cellar/gcc/10.2.0/bin/gcc-nm-10
/usr/local/Cellar/gcc/10.2.0/bin/gcc-ranlib-10
/usr/local/Cellar/gcc/10.2.0/bin/gcov-10
/usr/local/Cellar/gcc/10.2.0/bin/gcov-dump-10
/usr/local/Cellar/gcc/10.2.0/bin/gcov-tool-10
/usr/local/Cellar/gcc/10.2.0/bin/gfortran
/usr/local/Cellar/gcc/10.2.0/bin/gfortran-10
/usr/local/Cellar/gcc/10.2.0/bin/lto-dump-10
/usr/local/Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-c++-10
/usr/local/Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-g++-10
/usr/local/Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-10
/usr/local/Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-10.2.0
/usr/local/Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-ar-10
/usr/local/Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-nm-10
/usr/local/Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-ranlib-10
/usr/local/Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gfortran-10
/usr/local/Cellar/gcc/10.2.0/include/c++/ (770 files)
/usr/local/Cellar/gcc/10.2.0/lib/gcc/ (638 files)
/usr/local/Cellar/gcc/10.2.0/libexec/gcc/ (13 files)
/usr/local/Cellar/gcc/10.2.0/share/gcc-10.2.0/ (4 files)
/usr/local/Cellar/gcc/10.2.0/share/man/ (11 files)

然后,您可以找到实际使用的符号链接二进制文件,如下所示:

cd /usr/local/bin
ls -l | grep gcc

样本输出

lrwxr-xr-x   1 mark  admin        31 21 Aug 16:41 c++-10 -> ../Cellar/gcc/10.2.0/bin/c++-10
lrwxr-xr-x   1 mark  admin        31 21 Aug 16:41 cpp-10 -> ../Cellar/gcc/10.2.0/bin/cpp-10
lrwxr-xr-x   1 mark  admin        31 21 Aug 16:41 g++-10 -> ../Cellar/gcc/10.2.0/bin/g++-10
lrwxr-xr-x   1 mark  admin        31 21 Aug 16:41 gcc-10 -> ../Cellar/gcc/10.2.0/bin/gcc-10
lrwxr-xr-x   1 mark  admin        34 21 Aug 16:41 gcc-ar-10 -> ../Cellar/gcc/10.2.0/bin/gcc-ar-10
lrwxr-xr-x   1 mark  admin        34 21 Aug 16:41 gcc-nm-10 -> ../Cellar/gcc/10.2.0/bin/gcc-nm-10
lrwxr-xr-x   1 mark  admin        38 21 Aug 16:41 gcc-ranlib-10 -> ../Cellar/gcc/10.2.0/bin/gcc-ranlib-10
lrwxr-xr-x   1 mark  admin        32 21 Aug 16:41 gcov-10 -> ../Cellar/gcc/10.2.0/bin/gcov-10
lrwxr-xr-x   1 mark  admin        37 21 Aug 16:41 gcov-dump-10 -> ../Cellar/gcc/10.2.0/bin/gcov-dump-10
lrwxr-xr-x   1 mark  admin        37 21 Aug 16:41 gcov-tool-10 -> ../Cellar/gcc/10.2.0/bin/gcov-tool-10
lrwxr-xr-x   1 mark  admin        33 21 Aug 16:41 gfortran -> ../Cellar/gcc/10.2.0/bin/gfortran
lrwxr-xr-x   1 mark  admin        36 21 Aug 16:41 gfortran-10 -> ../Cellar/gcc/10.2.0/bin/gfortran-10
lrwxr-xr-x   1 mark  admin        36 21 Aug 16:41 lto-dump-10 -> ../Cellar/gcc/10.2.0/bin/lto-dump-10
lrwxr-xr-x   1 mark  admin        53 21 Aug 16:41 x86_64-apple-darwin19-c++-10 -> ../Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-c++-10
lrwxr-xr-x   1 mark  admin        53 21 Aug 16:41 x86_64-apple-darwin19-g++-10 -> ../Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-g++-10
lrwxr-xr-x   1 mark  admin        53 21 Aug 16:41 x86_64-apple-darwin19-gcc-10 -> ../Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-10
lrwxr-xr-x   1 mark  admin        57 21 Aug 16:41 x86_64-apple-darwin19-gcc-10.2.0 -> ../Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-10.2.0
lrwxr-xr-x   1 mark  admin        56 21 Aug 16:41 x86_64-apple-darwin19-gcc-ar-10 -> ../Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-ar-10
lrwxr-xr-x   1 mark  admin        56 21 Aug 16:41 x86_64-apple-darwin19-gcc-nm-10 -> ../Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-nm-10
lrwxr-xr-x   1 mark  admin        60 21 Aug 16:41 x86_64-apple-darwin19-gcc-ranlib-10 -> ../Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gcc-ranlib-10
lrwxr-xr-x   1 mark  admin        58 21 Aug 16:41 x86_64-apple-darwin19-gfortran-10 -> ../Cellar/gcc/10.2.0/bin/x86_64-apple-darwin19-gfortran-10

因此,一旦确定要使用哪个编译器,就需要告诉构建工具如何使用它。我不熟悉你提到的软件包,但你文章的第四行暗示它使用的是/usr/bin/g++,如果你想使用自制软件/usr/local/bin/g++-10,这是不正确的

指定不同编译器的常用方法有:

  • 对于CMakeCXX=/usr/local/bin/g++-10 cmake ..
  • 对于使make CXX=/usr/local/bin/g++-10
  • 对于autoconf./configure CXX=/usr/local/bin/g++-10

我花了很长时间,最终有两个主要问题,我认为可能对其他人有用

  1. ChemPy仅在Linux上受支持,因此即使在我让编译器工作时,我也没有让它在Mac或Windows上运行。有关更多信息,请参见Github上的issue

  2. 编译程序乱七八糟。最后,有效的方法是使用Anaconda环境中的clang v10,而不是v12:

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++

为了使其完整,这里列出了存在和工作的内容:

(base) bash-3.2$ clang  version
clang version 10.0.0
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Users/user/anaconda3/bin
(base) bash-3.2$ which clang
/Users/user/anaconda3/bin/clang

相关问题 更多 >