ライブラリのデバッグ バージョンとのリンクに問題があります。CMake を使用してライブラリを作成します。
project(myLib)
...
add_library(myLib SHARED ${SOURCES})
ビルドを 2 回起動して、lib のリリース バージョンとデバッグ バージョンを取得します。次に、デバッグ ライブラリの名前に「d」サフィックスを追加し、myLib.dll
およびmyLibd.dll
.
私のアプリでは、デバッグ dll に対して明示的にリンクしています。
project(myApp)
add_executable(myApp WIN32 ${SOURCES})
target_link_libraries(myApp myLibd.dll)
ビルドは正常に終了しますが、結果の exe ファイルを Dependency Walker で開くとmyLib.dll
、デバッグ バージョン ( myLibd.dll
) が同じフォルダーにあるにもかかわらず、ファイルへの未解決の依存関係が発生します。
では、なぜ私のアプリは実行時に私の lib のリリース バージョンを使用しようとするのでしょうか? また、デバッグ バージョンに対して適切にリンクするにはどうすればよいですか?