2016-03-22 13 views
0

非常に基本的なテストコードをコンパイルし、その結果をLinuxの標準出力にインテル®Cコンパイラで出力します。私はコードをlibimf(Intelの数学関数ライブラリ)にリンクしてではなく、logという関数が呼び出されるようにGNU libmをとしたい。Intel Cコンパイラを使用してlibmにリンクしない方法

これまでのところ私は-limfでlibimf.soにリンクするために管理していますが、デフォルトによって-lmとlibm.soに対するiccリンクしています。 私はこれを避けたいと思います。私はどのように進めるべきですか?

+0

暗闇の中でショット、LD_LIBRARY_PATH環境変数を設定しようとしましたか? –

+0

はい、私はそれを '輸出'していませんでした。変数をエクスポートすると、 '-limf'とリンクでき、' ldd'は 'libimf.so'を期待通りに表示します。しかし、デフォルトでは '-lm'とリンクしたくないのですが、今は' log'を呼び出すのは難しいですから! – hdl

+1

LD_LIBRARY_PATHを設定/エクスポートすると他のライブラリが上書きされます。/homeにファイル名libX.soがあり、env変数を設定/エクスポートした後に/ libにファイル名libX.soがあると仮定すると、コンパイラはenv変数パスにあるものを使用します。 –

答えて

1

システムライブラリにリンクオーバーライドするために、我々はこの動作を無効にするには、ICCのマニュアルに従って、いくつかのデフォルトライブラリに対するICCリンクをLD_LIBRARY_PATH
を設定し、エクスポートする必要がありますが-nodefaultlibsを追加

関連する問題