macOS High Sierra下CMake无法找到wxWidgets库的问题求助
解决CMake无法找到brew安装的wxmac(wxWidgets)的问题
看起来你遇到的问题是CMake的FindwxWidgets模块没能自动定位到brew安装的wxmac库,这在旧版本CMake和brew的wxmac安装组合里很常见,主要是因为模块的自动检测逻辑没适配brew的路径结构。下面给你几个可行的解决方案:
方案1:运行CMake时手动指定wx-config路径
brew安装的wxmac会提供wx-config工具,你可以在cmake命令里直接指定它的路径,让CMake通过这个工具来获取库信息:
cmake -G "Unix Makefiles" -DwxWidgets_CONFIG_EXECUTABLE=/usr/local/bin/wx-config ..
如果/usr/local/bin/wx-config是brew创建的软链接但没生效,你可以直接用wxmac安装目录下的完整路径:
cmake -G "Unix Makefiles" -DwxWidgets_CONFIG_EXECUTABLE=/usr/local/Cellar/wxmac/3.0.4/bin/wx-config ..
方案2:在CMakeLists.txt中预先配置wx-config路径
你也可以在find_package之前,在CMakeLists.txt里直接设置wxWidgets_CONFIG_EXECUTABLE变量,这样每次运行cmake就不用额外传参数了:
project(wxWidgetsTest) cmake_minimum_required(VERSION 2.8) # 添加这行,指定wx-config的路径 set(wxWidgets_CONFIG_EXECUTABLE "/usr/local/bin/wx-config") 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} )
方案3:确保wx-config在系统PATH中
有时候CMake找不到wx-config只是因为它不在当前的PATH环境变量里。你可以先检查PATH:
echo $PATH
如果看不到/usr/local/bin,临时添加它:
export PATH=/usr/local/bin:$PATH
然后再重新运行cmake命令,这样FindwxWidgets模块就能自动找到wx-config了。
额外建议:升级CMake版本
你当前使用的CMake 3.11.1版本比较老旧,FindwxWidgets模块的检测逻辑在后续版本中做了很多优化,对brew这类包管理器的支持更好。可以用brew升级CMake:
brew upgrade cmake
最后,你可以先验证下wx-config是否能正常返回库信息,运行这个命令:
wx-config --libs core base wxSTC wxAUI
如果能输出正确的库路径列表,说明wxmac安装是正常的,上面的方案应该能解决问题。
内容的提问来源于stack exchange,提问作者Sri Harsha Chilakapati
相关产品推荐
相关产品推荐

