我试图在Ubuntu16.04上构建和安装ccminer,并得到以下错误:
scrypt.cpp:(.text+0xa55b): undefined reference to `GOMP_parallel'
scrypt.cpp:(.text+0xa6cd): undefined reference to `GOMP_parallel'安装了libgomp1:
Package: libgomp1
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 156
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Multi-Arch: same
Source: gcc-5
Version: 5.4.0-6ubuntu1~16.04.5
Depends: gcc-5-base (= 5.4.0-6ubuntu1~16.04.5), libc6 (>= 2.17)
Breaks: gcc-4.3 (<< 4.3.6-1), gcc-4.4 (<< 4.4.6-4), gcc-4.5 (<< 4.5.3-2)
Description: GCC OpenMP (GOMP) support library
GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers
in the GNU Compiler Collection.
Homepage: http://gcc.gnu.org/
Original-Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>图书馆可以在这里找到:
locate libgomp
/usr/lib/gcc/x86_64-linux-gnu/5/libgomp.a
/usr/lib/gcc/x86_64-linux-gnu/5/libgomp.so
/usr/lib/gcc/x86_64-linux-gnu/5/libgomp.spec
/usr/lib/x86_64-linux-gnu/libgomp.so.1
/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
/usr/share/doc/libgomp1
/var/lib/dpkg/info/libgomp1:amd64.list
/var/lib/dpkg/info/libgomp1:amd64.md5sums
/var/lib/dpkg/info/libgomp1:amd64.shlibs
/var/lib/dpkg/info/libgomp1:amd64.symbols
/var/lib/dpkg/info/libgomp1:amd64.triggers是否有可能以某种方式指定config / makefile中库的位置?
makefile包含:
OPENMP_CFLAGS = -fopenmp如果是相关的话,我已经安装了Anaconda,因为我已经读到这会干扰一些构建过程。
链接到build.sh的详细输出
gcc和g++版本:
g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609发布于 2018-01-31 03:08:20
我也遇到了同样的问题,正如OP所预测的,我的问题与Anaconda的安装有关,并且在移除它之后得到了修复。我注意到,运行locate libgomp会产生类似于OPs的输出,但与Anaconda相关的结果位于顶部。
卸载后,输出是相同的,我可以使用默认配置构建ccminer。
这个职位详细说明了如何卸载Anaconda
发布于 2017-11-09 15:05:50
看起来您使用的是发行版的默认gcc版本(可能是6或7)。根据安装文档,gcc 5是唯一支持的版本。您可以使用gcc --version检查版本。若要更改Ubuntu上的版本,请运行以下命令:
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 1
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 1发布于 2017-11-04 02:55:20
我不知道您在编译方面有多少经验,但总的来说,安装一个库还不够。要针对库进行编译,还需要安装开发头。该包通常称为图书馆名称-dev,因此请检查并确保已安装。对于这个问题,它可能会在包安装程序中被称为'libgomp1-dev‘,或者类似的东西。
您发布的错误看起来像编译器错误。当您运行libgomp时,配置脚本对libgomp说了什么?它通常检查依赖库。
默认情况下,头文件通常存储在/usr/include或/usr/local/include中。我只是看了一下我的头,我没有看到任何看起来与libgomp相关的标题。我还安装了libgomp1包,但没有libgomp1-dev。事实上,在我发行版的存储库(基于Ubuntu的Trisquel 7 )中,似乎没有libgomp1-dev包可用。我建议您查看它应该使用的头文件,以及您可以在哪里获得该文件。
https://unix.stackexchange.com/questions/400529
复制相似问题