CMake在macOS High Sierra上找不到wxWidgets库

时间:2018-05-09 10:43:18

标签: c++ macos cmake wxwidgets

我正在学习CMake并希望尝试编译测试wxWidgets应用程序,我以前在Windows下成功编译。但是,我之前从未使用过CMake,但当时我手动使用Visual Studio进行设置。

所以我在线查看了一些教程,并使用CMake在C ++中编译了一个基本的hello world应用程序(命令行),并且工作正常。然后我使用brew安装了wxWidgets。

brew install wxmac

它安装完毕,我可以成功运行wx-config工具。我也可以在finder中看到这些文件。然后我将其添加到我的CMakeLists.txt文件中。

project(wxWidgetsTest)

cmake_minimum_required(VERSION 2.8)

find_package(wxWidgets COMPONENTS core base wxSTC wxAUI REQUIRED)

include( "${wxWidgets_USE_FILE}" )

add_executable(
    ${PROJECT_NAME}
    main.cpp
    )

target_link_libraries(
    ${PROJECT_NAME}
    ${wxWidgets_LIBRARIES}
    )

但是,当我尝试生成构建文件时,我使用命令:

cmake -G "Unix Makefiles" ..

它没有说find_package无法找到wxWidgets库。这是错误输出:

CMake Error at /usr/local/Cellar/cmake/3.11.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES)
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.11.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/Cellar/cmake/3.11.1/share/cmake/Modules/FindwxWidgets.cmake:953 (find_package_handle_standard_args)
  CMakeLists.txt:5 (find_package)

wxWidgets库安装在/usr/local/Cellar/wxmac/3.0.4 /

我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

经过六个小时的摆弄后,我在findWxWidgets脚本中找到了一个新配置选项,这是一个必需的配置。

我所要做的就是指定wx-config文件的位置。

  

cmake -G" Unix Makefiles" .. -DwxWidgets_CONFIG_EXECUTABLE = / usr / local / Cellar / wxmac / 3.0.4 / bin / wx-config

它能够找到wxWidgets库。对我而言似乎是一个简单的错误。

这是我找到的来源:http://cmake.3232098.n2.nabble.com/Can-t-find-wxWidgets-tp7591015p7591017.html

答案 1 :(得分:0)

正在考虑它是一个错误...

要解决此问题,请设置CMAKE_FIND_ROOT_PATH以帮助cmake查找程序。 将以下行放在find_package(wxWidgets)之前。

set(CMAKE_FIND_ROOT_PATH "/usr/local")

我在带有注释的FindWidgets.cmake中找到可疑的代码

支持交叉编译,仅在目标平台中搜索。

,它为find_program命令提供ONLY_CMAKE_FIND_ROOT_PATH选项。 根据文档,此选项意味着只能在“ root”路径下找到程序。