web-dev-qa-db-ja.com

このlibgomp1依存関係の問題を解決するにはどうすればよいですか?

Ubuntu 16.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 <[email protected]>
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 <[email protected]>

そしてライブラリはここにあります:

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のVERBOSE出力へのリンク

出力要旨

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
2
codecowboy

私はまったく同じ問題を抱えていて、OPによって予測されたように、私の問題はAnacondaのインストールに関連していて、それを削除した後に修正されました。 locate libgompはOPと同様の出力を生成しましたが、Anaconda関連の結果が上部にあります。

アンインストール後、出力は同じで、デフォルトの構成でccminerをビルドできるようになりました。

この投稿 Anacondaをアンインストールする方法の詳細

1
Slpk

ディストリビューションのデフォルトのgccバージョン(おそらく6または7)を使用しているようです。 INSTALLドキュメントによれば、サポートされるバージョンは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
2
Outurnate

コンパイルの経験がどれだけあるかはわかりませんが、一般に、ライブラリをインストールするだけでは十分ではありません。ライブラリに対してコンパイルするには、開発ヘッダーもインストールする必要があります。そのためのパッケージは通常[library-name] -devと呼ばれるため、それがインストールされていることを確認してください。そのため、おそらくパッケージインストーラーでは「libgomp1-dev」などと呼ばれます。

投稿したエラーはコンパイラエラーのようです。実行したときに、configureスクリプトはlibgompについて何と言っていましたか?通常、依存ライブラリをチェックします。

編集:

ヘッダーファイルは通常、/usr/includeまたは/usr/local/includeデフォルト。私はちょっと見ただけで、libgompに関連しているように見えるヘッダーは見当たりません。 libgomp1パッケージもインストールしていますが、libgomp1-devはインストールしていません。実際、私のディストリビューションのリポジトリ(UbuntuベースのTrisquel 7)には、libgomp1-devパッケージがありません。使用するはずのヘッダーファイルと、それを取得できる場所を調べることをお勧めします。

0
Time4Tea