[英]CMake cannot find wxWidgets library on macOS High Sierra
我正在學習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 中發現了帶有注釋的可疑代碼
支持交叉編譯,只在目標平台搜索。
並且它為 find_program 命令提供 ONLY_CMAKE_FIND_ROOT_PATH 選項。 根據文檔,此選項意味着僅在“root”路徑下查找程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.