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 / makeファイル内のライブラリの場所をどのように指定できますか?
生成されたファイルには以下が含まれます。
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
答え1
ディストリビューションのデフォルトの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
答え2
私は同じ問題があり、OPが予測したように、私の問題はAnacondaのインストールに関連しており、それを削除した後に修正されました。実行するとlocate libgomp
OPに似た出力が生成されますが、Anaconda関連の結果が一番上に表示されることを確認しました。
アンインストール後も出力は同じで、デフォルト設定でccminerを構築できます。
この投稿Anacondaを削除する方法の詳細
答え3
あなたのコンパイル経験がどれくらいになるのかわかりませんが、一般的にライブラリをインストールするだけでは十分ではありません。ライブラリをコンパイルするには、開発ヘッダーもインストールする必要があります。このパッケージは通常[ライブラリ名]-devと呼ばれているので、インストールされていることを確認してください。この場合、パッケージインストーラは「libgomp1-dev」または同様の名前で呼び出されます。
投稿したエラーはコンパイラのバグのように見えます。構成スクリプトを実行すると、libgompにどのような内容が渡されますか?通常、依存ライブラリを確認します。
編集する:
ヘッダファイルは通常/usr/include
または/usr/local/include
デフォルトで保存されます。私は私のファイルを見ましたが、libgompに関連しているように見えるヘッダーはまったく表示されません。 libgomp1パッケージもインストールしましたが、libgomp1-devはインストールしませんでした。実際、私の配布リポジトリ(UbuntuベースのTrisquel 7)にはlibgomp1-devパッケージがないようです。どのヘッダファイルを使用するのか、どこで見つけることができるかを確認することをお勧めします。