2011-07-01 7 views
3

インテルコンパイラを使用してコンパイルすると、実行ファイルに埋め込まれたシンボルから比較的簡単に知ることができます。実行可能ファイルに__intel_proc_initのようなシンボルが存在することからバイナリをコンパイルするために使用されたインテルコンパイラのバージョンを確認する方法

同様の診断を使用してバイナリをコンパイルするために使用されたインテルコンパイラのバージョンを知る方法はありますか?

+2

バージョンタグのトレースがどこかにあるかどうかを確認するために、 'objdump'を使いましたか? –

+0

私が見つけた唯一のことは、intel_id.71.0.0.0というシンボルですが、その意味は不明です。 –

答えて

0

次のFortranソースコードは、実行時にインテルコンパイラのバージョンを出力します。明らかに他の言語で同様のコード....あなたの必要性を満たすだろうか?そうでなければ、実行可能ファイル内のシンボルにヒントを与えるかもしれません。

#ifdef __INTEL_COMPILER 
     write (*, 1050) __INTEL_COMPILER 
     1050 format ("Fortran code compiled with Intel ifort, version ", I0 /) 
#endif 
+0

ありがとう、私の元の質問は、私は最終的なコンパイルされた実行可能ファイルとソースではない場合に関するものでした。 –

1

PEIDはMSVCバイナリのためにこれを行うことが可能であるので、あなたはそう、あなたは彼らがスキャンどんなメーカーから見つける必要がありたければ、それをチェックアウトし、それがインテルのために動作するかどうかを確認することをお勧めしますPE/objダンプ(iircのいくつかの情報はPEのプレーンテキストです)

+0

私はこの方法を試すことはできませんので、使用するWindowsプラットフォームがありません。 PEIDについて教えてくれてありがとう、役に立つと思う。 –

2

私は自分の質問に部分的な答えを見つけたと思います。

(#)、インテルFortran RTLメッセージカタログV10.1-101 01 - 8月 - 2007

@から:文字列ユーティリティを使用して、私は、Fortran実行ファイルから次の文字列を抽出することができました

(#)、インテルFortran RTLメッセージカタログV11.1-107 @ /opt/intel/Compiler/11.1/073/bin/intel64/ifort

:別のFortran実行ファイルが、私は以下の文字列を見つけました16-Mar-2010

ただし、Cコンパイルされた実行可能ファイルからこのような文字列を抽出することができませんでした。

関連する問題