CMake 在 macOS High Sierra 上找不到 wxWidgets 库

CMake cannot find wxWidgets library on macOS High Sierra

本文关键字:找不到 wxWidgets Sierra macOS High CMake      更新时间:2023-10-16

我正在学习CMake,想尝试用它来编译一个测试wxWidgets应用程序,我之前在Windows下成功编译了它。但是,我以前从未使用过CMake,但是当时我使用Visual Studio手动设置了它。

所以我在网上看了一些教程,并使用CMake在C++中编译了一个基本的hello world应用程序(命令行(,它工作得很好。然后我用brew安装了wxWidgets。

brew install wxmac

它确实安装了,我可以成功运行wx-config工具。我还可以在查找器中看到文件。然后我把它添加到我的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/

我在这里做错了什么?

经过六个小时的摆弄,我在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

认为这是一个错误...

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

set(CMAKE_FIND_ROOT_PATH "/usr/local")

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

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

它提供了ONLY_CMAKE_FIND_ROOT_PATH find_program命令的选项。 根据文档,此选项意味着仅在"根"路径下查找程序。