2017-01-09 5 views
0

私は過去2〜3日間このファイルを調べようとしていましたが、Web上で何の関連も見つけられませんでした。.libは.exeプログラムをコンパイルするときに生成されます

Visual Studio 2012を使用して.exeファイルを生成する一連のプロジェクトがあります(この動作は新しいバージョンでも発生します)。私はプロパティシートを使ってすべてのコンパイルオプションを設定します。したがって、すべての私のCL &リンクスイッチは、私の.exeプロジェクトを通して一貫しています。私は、スイッチのどれもが問題のプロジェクト内でローカルに上書きされていないことを確認しました。

私の問題は41プロジェクトのうち2つが.lib & .expファイルを目的の.exeファイルとして生成することです。私はこれまでこれを見たことがないし、私はかなり理解していないなぜそれらは.exeのために必要となるでしょう。これはリンカが瞬間的にプロジェクトを.dllとして扱うようですが、最終的に.exeを生成します。

これが特定の条件下で予想される動作であるかどうかは誰にも分かりますか?

ありがとうございます。

私はこのリンクを見つけました。これは、私が得ていることをかなり正確に説明しています。しかし、このソリューションは私の場合は適用されないようです。

Why does my Visual C++ .exe project build create .lib and .exp files?

+0

人が投票し、説明や理由がないときは、常に嫌です。その無意味なフィードバックに感謝します。 – ThermoX

+1

downvoteはおそらく、問題を再現するのに十分な情報がなかったためです。 –

+0

それは可能かもしれません..一般的に、exeもこれらのファイルを生成できるかどうかについての可能性を探していたので、質問はかなり一般的でした。しかし、結局のところ、それはリンクで言及されたのと同じ理由で終わった。今、私は質問を投票している人々に問題はない*彼らはそれを説明することを提供*。あなたのご意見ありがとうございます。 – ThermoX

答えて

1

よし...多くの掘削後、私は最終的に問題を発見しました。

実際問題は、私が提供したリンクに記載されている問題に関連していました。昔のSun Microsystemライブラリ(ポートマップ関連)の下には、そこに__declspec(dllexport)文を持つ関数が1つありました。そのライブラリはすべて my .exeプロジェクトで使用されていますが、2つの問題のプログラムだけが間接的にエクスポートされた関数を呼び出していました。

振り返ってみると、単に.libファイルを直接見ただけですみました。どの単一機能がエクスポートされたかを示しています。

関連する問題