2

我使用 MinGW 编译了 wxWidgets 2.8.12。为了实际进行构建,我通过 MSYS shell 调用了与 wxWidgets 一起分发的 autotools 构建文件,使用了 H:\MinGW-libs 的安装前缀。

这样做的结果是我有一个 Unix 样式的文件树,其中包含我的 wxWidgets 头文件和库(它们是 .a 文件,而不是 .dll),根目录为 H:\MinGW-libs。

我的问题是我无法让 CMake 找到文件。当我尝试使用 CMake gui 中的“配置”按钮时,它会找到其他依赖项(即 boost,我必须为此指定 BOOST_ROOT,但它没有找到 wxWidgets。我看到 wxWidgets_ROOT_DIR 是一个可用的常量,我可以设置但没有明显的选择

H:\MinGW-libs(我的 wxWidgets 安装前缀)

H:\MinGW-libs\lib

H:\MinGW-libs\include

修复错误。

CMake 邮件列表上有一篇关于此问题的旧帖子,但实际上没有任何信息表明如何在此用例中修复它。我唯一的提示是在“Unix 风格”文件树和“Windows 风格”文件树中寻找 wxWidgets 是有区别的。

如何让 CMake 找到安装在 Windows 7 上的 Unix 样式文件树中的 wxWidgets?有没有办法让 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"(你用哪一个?

于 2013-09-22T12:28:52.497 回答