0

Mac OS XとWindowsの両方でビルドしようとしている非常に単純な(現在はmain.cppのみの)CMakeC++プロジェクトがあります。これは、両方のプラットフォームで静的ライブラリとしてコンパイルしたlibgsaslに依存します。

Mac OS Xはビルドに問題はなく、Windowsもビルド中に文句を言わず、EXEを生成します。WindowsでEXEを実行しようとすると、libgsasl.dllが見つからないため、アプリケーションを実行できないというエラーメッセージが表示されます。

ダイナミックライブラリに対してリンクしようとしているのではなく、静的ライブラリ(.libバージョン)だけに対してリンクしようとしています。私は何かが足りないのですか?Visual Studioでは、gsasl.libファイルが見つかり、リンクコマンドに含まれているように見えます。

4

1 に答える 1

1

MSツールチェーンでは、.libは静的ライブラリまたは実際のDLLへのインポートライブラリのいずれかです。

dumpbinを使用してライブラリ内を覗き見し、実際のタイプを確認できます。詳細を処理する方法はいくつかありますが、私の好みの手法は/summaryオプションを使用することです。インポートライブラリにはセクション.idata$n(nは整数)があり、静的ライブラリには.textセクションがあります。

于 2009-10-19T17:51:07.977 に答える