【问题标题】:Cmake Could not find wxWigetsCmake 找不到 wxWigets
【发布时间】:2018-08-03 09:33:49
【问题描述】:

我想在 Windows 上使用 CMake 编译源代码,它使用 wxWigets 库。 我从页面下载了 wxWigets:https://www.wxwidgets.org/

通过 Visual Studio 构建后,我得到了库 /lib 文件。 我已经为 wxWidgets_LIBRARIES 和 wxWidgets_INCLUDE_DIRS 设置了 PATH。但无法解决以下错误。

CMake Error at C:/Program Files/CMake/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
      Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
      wxWidgets_INCLUDE_DIRS)
    Call Stack (most recent call first):
      C:/Program Files/CMake/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
      C:/Program Files/CMake/share/cmake-3.11/Modules/FindwxWidgets.cmake:953 (find_package_handle_standard_args)
      CMakeLists.txt:52 (find_package)

我还阅读了关于这个问题的帖子:CMake could not find wxWidgets on Windows 但是我的情况没有解决方案。

【问题讨论】:

    标签: windows compiler-errors cmake wxwidgets cmake-gui


    【解决方案1】:

    您可以指定wxWidgets_ROOT_DIR 变量来指向您的wxWidgets 安装。

    据我了解,您可以通过 -D 选项将任一 CMake 变量设置为 cmake

    cmake -DwxWidgets_ROOT_DIR:PATH=D:/path/to/wxWidgets/ ...
    

    或者你可以设置环境变量

    set wxWidgets_ROOT_DIR=D:\path\to\wxWidgets\ ...
    

    (请注意,CMake 路径变量使用“通用”目录分隔符“/”,但环境变量使用本机目录分隔符,Windows 为“\”)。

    documentation for FindwxWidget 中描述了此变量。


    使用 wxWidgets_LIB_DIR 变量可能很棘手,请参阅 that question

    【讨论】:

    • 我想我已经设置了wxWidgets_ROOT_DIR,但仍然没有幸运..
    • 你找到解决办法了吗?我在这里遇到了完全相同的问题。
    • @ZhiqiangYang:你是说你在that question中描述的问题吗?不,这不是“这里完全相同的问题”。提问者从find_package(wxWidgets) 得到错误,设置wxWidgets_ROOT_DIR 应该可以修复该错误。在您的情况下,find_package(wxWidgets) 成功 并且您从编译器收到错误消息。
    • 简单的解释一下,我重装wxWidgets后无法编译。现在我有这个“CMake 错误找不到 wxWidgets”。所以这就是为什么我问是否有“找不到wxWidgets”的解决方案
    • 设置wxWidgets_ROOT_DIR 应该会有所帮助。检查您是否设置了正确的路径和正确的分隔符(如果您设置了 CMake 变量,则路径分隔符始终为 /,如果您设置环境变量,则 Windows 上的路径分隔符为 \)。作为自检,检查您在wxWidgets_ROOT_DIR 变量中指定的目录是否实际包含include/wx/wx.h 文件。如果没有任何帮助,那么您可以提出一个新问题,在那里您可以描述有关您的问题的所有详细信息。