我正在学习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 /
我在这里做错了什么?
答案 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”路径下找到程序。