前文:この質問はオラクルに関するないが、代わりに私はGCC-4とgcc-6の基本的な違いを理解したいと思います位置独立コードの処理。gccの-fPIC -fPIE:GCC-4 betweenn違いとgcc-6
私はDebianでOracle 12cのインストールを試しましたストレッチです。 GCC-6とのリンク段階で
、次のようなエラーメッセージが発行されています
/usr/bin/ld: /opt/oracle/product/12.2.0/lib/libpls12.a(pci.o):
relocation R_X86_64_32S against `.rodata.str1.4' can not be used when making a shared object;
recompile with -fPIC.
私はGCC-4.9を使用するようにコンパイラを切り替える場合は、すべてのリンクは問題なく行われます。
このように、私の2つの質問:
- は、gccのバージョン4と6の間-fPICと-fPIEのデフォルト値の変化はありますか?おそらくはい、バージョン6はデフォルトで2つのオプションを使用しているようです。
- 私にとってもっと重要なこと:gcc、バージョン6はバージョン4の動作を位置独立コードの生成に使用するオプションを持っていますか? (または、GCC-4は、利用可能なよりですので、私は遅かれ早かれ、これ以上の古いライブラリをリンクすることはできないのでしょうか?)