Cmake не удалось найти wxWigets

Я хочу скомпилировать исходный код для Windows с помощью CMake, он использует библиотеку wxWigets. Я скачал wxWigets со страницы: https://www.wxwidgets.org/

После сборки Visual Studio я получил файл библиотеки /lib. Я уже установил PATH для wxWidgets_LIBRARIES и wxWidgets_INCLUDE_DIRS. Но следующие ошибки не могут быть устранены.

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 не удалось найти wxWidgets в Windows Но для моего случая решения нет.


person Karim    schedule 23.02.2018    source источник


Ответы (1)


Вы можете указать переменную wxWidgets_ROOT_DIR, чтобы она указывала на вашу установку wxWidgets.

Насколько я понимаю, вы можете установить любую переменную CMake с помощью опции -D в cmake:

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

или вы можете установить переменную environment

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

(Обратите внимание, что переменные пути CMake используют «универсальный» разделитель каталогов «/», но переменные среды используют собственный разделитель каталогов «\» для Windows).

Эта переменная описана в документации для FindwxWidget.


Использование переменной wxWidgets_LIB_DIR может быть сложным, см. command">этот вопрос.

person Tsyvarev    schedule 23.02.2018
comment
Я думаю, что уже установил wxWidgets_ROOT_DIR, но все равно не повезло.. - person user3875388; 19.09.2020
comment
Вы находите какое-либо решение для этого? Я столкнулся с точно такой же проблемой здесь. - person Zhiqiang Yang; 27.03.2021
comment
@ZhiqiangYang: Вы имеете в виду проблему, описанную в , что вопрос? Нет, здесь не совсем та же проблема. Спрашивающий получил ошибку от find_package(wxWidgets), и настройка wxWidgets_ROOT_DIR должна исправить эту ошибку. В вашем случае find_package(wxWidgets) успешно, и вы получили сообщение об ошибке от компилятора. - person Tsyvarev; 27.03.2021
comment
Проще говоря, после переустановки wxWidgets я не могу его скомпилировать. Теперь у меня есть эта ошибка CMake. Не удалось найти wxWidgets. Поэтому я и спрашиваю, есть ли решение не находить wxWidgets - person Zhiqiang Yang; 27.03.2021
comment
Настройка wxWidgets_ROOT_DIR должна помочь. Убедитесь, что вы установили правильный путь и с правильным разделителем (если вы установили переменную CMake, то разделителем путей всегда будет /, если вы установите переменную среды, то разделителем путей в Windows будет \). В качестве самопроверки проверьте, что каталог, который вы указали в переменной wxWidgets_ROOT_DIR, действительно содержит include/wx/wx.h файл. Если ничего не помогает, то вы можете задать новый вопрос, в котором вы могли бы описать все детали вашей проблемы. - person Tsyvarev; 27.03.2021