【发布时间】:2018-10-19 11:00:13
【问题描述】:
我正在学习 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/
我在这里做错了什么?
【问题讨论】:
-
也许你可以使用
SET(wxWidgets_ROOT_DIR /usr/local/Cellar/wxmac/3.0.4/) -
@MarkSetchell 谢谢,但也没有用。我遇到了同样的错误。
-
在您学习 CMake 时,我问了一个显而易见的问题:在提议的更改之后,您是否删除了
CMakeCache.txt?find_package调用的结果被缓存,您可能看不到更改的预期结果。当你在它的时候。请切换cmake_minimum_required和project调用的顺序。cmake_minimum_required会影响project调用中的一些初始设置。 -
@vre 是的,我做到了。我正在删除整个构建文件夹并重新运行 cmake 命令。顺便感谢第二个提示。做到了,但也没有任何变化。