ライブラリをインストールしようとしましたが、makeを実行した後で次のエラーが発生しました。フラグを付けて再コンパイルするには?は共有オブジェクトを作成するときには使用できません。 -fPICで再コンパイルする
make Scanning dependencies of target pwrutils Linking CXX shared library libpwrutils.so /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_system.a(error_code.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC ,/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_system.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status make[2]: * [libpwrutils/libpwrutils.so.1.0] Error 1 make[1]: * [libpwrutils/CMakeFiles/pwrutils.dir/all] Error 2 make: *** [all] Error 2
CMakeを使用していますか? 'cmake .'やそれに類するもののようにして' make'するか、Makefileを持っていて 'make'を起動しますか? – fedepad
はい私はCmakeを使用しています。私はCMakeCache.txtを削除しようとしましたが、再度cmakeを実行しましたが、もちろんそれは役に立ちませんでした。 – Kasia
** shared **ライブラリ 'libpwrutils.so'を** static **ライブラリ' libboost_system.a'にリンクしようとしています。これは機能しません。 * shared * Boostライブラリをインストールするか、ライブラリ( 'libpwrutils.so')を* STATIC *としてビルドする必要があります。 BTW、[関連する質問](http://stackoverflow.com/questions/26549137/shared-library-on-linux-and-fpic-error)同様の問題を説明します。 – Tsyvarev