2

MinGW を使用して wxWidgets 2.8.12 をコンパイルしました。実際にビルドを行うために、H:\MinGW-libs のインストール プレフィックスを使用して、MSYS シェル経由で wxWidgets と共に配布された autotools ビルド ファイルを呼び出しました。

この結果、wxWidgets ヘッダーとライブラリ (.dll ではなく .a ファイル) をルート ディレクトリ H:\MinGW-libs に含む Unix スタイルのファイル ツリーができました。

私の問題は、CMake でファイルを見つけられないことです。CMake gui で「構成」ボタンを使用しようとすると、他の依存関係が見つかります (つまり、BOOST_ROOT を指定する必要があったブーストですが、wxWidgets が見つかりません。wxWidgets_ROOT_DIR は、設定できる利用可能な定数ですが、明白な選択肢のどれも

H:\MinGW-libs(wxWidgets の私のインストールプレフィックス)

H:\MinGW-libs\lib

H:\MinGW-libs\include

エラーを修正します。

この問題についてCMake メーリング リストに古い投稿がありますが、このユース ケースでの修正方法を示す情報は実際にはありません。私が持っている唯一のヒントは、「Unix スタイル」のファイル ツリーと「Windows スタイル」のファイル ツリーで wxWidgets を探すことには違いがあるということです。

Windows 7 の Unix スタイルのファイル ツリーにインストールされている wxWidgets を CMake で見つけるにはどうすればよいですか? CMake で wx-config を使用する方法はありますか? これは、MSYS コマンド ラインから wx-config を使用して lib とヘッダーの場所を取得するのに問題なく機能するためです。

4

1 に答える 1

2

からFindwxWidgets.cmake:

if(WIN32 AND NOT CYGWIN AND NOT MSYS)
  set(wxWidgets_FIND_STYLE "win32")
else()
  if(UNIX OR MSYS)
    set(wxWidgets_FIND_STYLE "unix")
  endif()
endif()

そのため、「MSYS Makefiles」ジェネレーター ( cmake -G "MSYS Makefiles") では Unix スタイルのツリーが想定されますが、「MinGW Makefiles」ジェネレーターでは想定されません。どちらを使用しますか?

于 2013-09-22T12:28:52.497 に答える