この問題は、installation problems をQtCore4
に修正しようとしたときに発生しました。リンカから次のエラーメッセージで失敗しました-fPICフラグを指定してlibperl.aオブジェクトファイルを再コンパイルするにはどうすればよいですか?
/usr/bin/c++ -fPIC -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong \
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -DNDEBUG \
-shared -Wl,-soname,QtCore4.so -o ../../blib/arch/auto/QtCore4/QtCore4.so \
CMakeFiles/perlqtcore4.dir/binding.cpp.o \
CMakeFiles/perlqtcore4.dir/handlers.cpp.o \
CMakeFiles/perlqtcore4.dir/marshall_types.cpp.o \
CMakeFiles/perlqtcore4.dir/util.cpp.o \
CMakeFiles/perlqtcore4.dir/QtCore4.c.o \
-lQtCore -lQtGui -lQtNetwork \
/home/hakon/perlbrew/perls/perl-5.24.1/lib/5.24.1/x86_64-linux/CORE/libperl.a \
../../smokeqt/qtgui/libsmokeqtgui.so.3.0.0 \
../../smokeqt/qtnetwork/libsmokeqtnetwork.so.3.0.0 \
-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc -lQtGui -lQtNetwork \
../../smokeqt/qtcore/libsmokeqtcore.so.3.0.0 -lQtCore \
../../smokegen/bin/libsmokebase.so.3.0.0 \
-Wl,-rpath,/home/hakon/Qt4-0.99.0/smokeqt/qtgui:/home/hakon/Qt4-0.99.0/smokeqt/qtnetwork:/home/hakon/Qt4-0.99.0/smokeqt/qtcore:/home/hakon/Qt4-0.99.0/smokegen/bin:
:エラーメッセージから
/usr/bin/ld: /home/hakon/perlbrew/perls/perl-5.24.1/lib/5.24.1/x86_64-linux/CORE/libperl.a(toke.o):
relocation R_X86_64_PC32 against symbol `PL_curcop' can not be used when making
a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
は、それが(オブジェクトファイルと私には思われるいくつかの点でmake
は、次のコマンドを実行しようとしましたここでは:toke.o
)の libperl.a
は-fPIC
フラグが設定されていません。私が今持っている
質問は以下のとおりです。
- 私は
-fPIC
とlibperl.a
にオブジェクトファイルを再コンパイルするにはどうすればよいですか? - この再コンパイルは(
QtCore4
に関連しない他のアプリケーション/プログラムによってlibperl.a
が使用される可能性があるので、(と をリンク))QtCore4
に関連しない他の問題を引き起こす可能性が?
私はUbuntu 16.10とperl version 5.24.1を使用しています。
[This](https://groups.google.com/forum/#!topic/perl.perl5.porters/-znN8wINCUI)は興味深いかもしれませんが、LinuxビルドではなくHPUXを指しています。 – hlt