首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决这个libgomp1依赖问题?

如何解决这个libgomp1依赖问题?
EN

Unix & Linux用户
提问于 2017-10-26 08:18:18
回答 3查看 12.3K关注 0票数 2

我试图在Ubuntu16.04上构建和安装ccminer,并得到以下错误:

代码语言:javascript
复制
scrypt.cpp:(.text+0xa55b): undefined reference to `GOMP_parallel'
scrypt.cpp:(.text+0xa6cd): undefined reference to `GOMP_parallel'

安装了libgomp1:

代码语言:javascript
复制
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>

图书馆可以在这里找到:

代码语言:javascript
复制
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包含:

代码语言:javascript
复制
OPENMP_CFLAGS = -fopenmp

如果是相关的话,我已经安装了Anaconda,因为我已经读到这会干扰一些构建过程。

链接到build.sh的详细输出

输出要点

gcc和g++版本:

代码语言:javascript
复制
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
EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2018-01-31 03:08:20

我也遇到了同样的问题,正如OP所预测的,我的问题与Anaconda的安装有关,并且在移除它之后得到了修复。我注意到,运行locate libgomp会产生类似于OPs的输出,但与Anaconda相关的结果位于顶部。

卸载后,输出是相同的,我可以使用默认配置构建ccminer。

这个职位详细说明了如何卸载Anaconda

票数 1
EN

Unix & Linux用户

发布于 2017-11-09 15:05:50

看起来您使用的是发行版的默认gcc版本(可能是6或7)。根据安装文档,gcc 5是唯一支持的版本。您可以使用gcc --version检查版本。若要更改Ubuntu上的版本,请运行以下命令:

代码语言:javascript
复制
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
票数 2
EN

Unix & Linux用户

发布于 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包可用。我建议您查看它应该使用的头文件,以及您可以在哪里获得该文件。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/400529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档