【发布时间】:2021-11-13 03:48:00
【问题描述】:
我正在尝试使用 find_package 查找 wxWidgets,它位于指向我的 CMAKE_PREFIX_PATH 的位置内,但是我没有成功。
如果我将环境变量 WXWIDGETS_ROOT_DIR 设置为 wxWidgets 安装,那么一切正常。但是,如果我将 CMAKE_PREFIX_PATH 设置为包含我的文件夹 wxWidgets-3.1.4 的文件夹,则找不到 wx。
我该如何解决这个问题?哪里有关于需要使用 WXWIDGETS_ROOT_DIR 的文档?我只是通过另一个堆栈溢出帖子才发现这一点的。
我的 CMakeLists.txt:
####################
# Global #
####################
cmake_minimum_required(VERSION 3.12)
set(CMAKE_CXX_STANDARD 17)
#####################
# Project #
#####################
# Header files (relative to "include" directory)
set(HEADERS
app.h
)
# Source files (relative to "src" directory)
set(SOURCES
app.cpp
)
# Compiler definitions
set(DEFINES
)
# Compiler options
set(OPTIONS
)
# Project setup
project("CPP-Sandbox"
VERSION "0.0.1"
DESCRIPTION "Description"
LANGUAGES CXX)
add_executable(CPP-Sandbox)
list(TRANSFORM HEADERS PREPEND "include/")
list(TRANSFORM SOURCES PREPEND "src/")
target_include_directories(CPP-Sandbox PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_sources(CPP-Sandbox PRIVATE ${SOURCES} ${HEADERS})
target_compile_definitions(CPP-Sandbox PRIVATE ${DEFINES})
target_compile_options(CPP-Sandbox PRIVATE ${OPTIONS})
set_target_properties(CPP-Sandbox PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "bin"
WIN32_EXECUTABLE true
)
####################
# Dependencies #
####################
find_package(wxWidgets REQUIRED COMPONENTS core base)
include(${wxWidgets_USE_FILE})
target_link_libraries(CPP-Sandbox ${wxWidgets_LIBRARIES})
【问题讨论】:
-
"哪里有关于需要使用 WXWIDGETS_ROOT_DIR 的文档?" - 文档在这里:cmake.org/cmake/help/latest/module/FindwxWidgets.html。如果您想了解为什么设置
CMAKE_PREFIX_PATH不起作用,那么您需要提供更多详细信息:您的代码、确切的错误消息、WxWidgets 的位置等等。 -
我已经添加了我的 CMakeLists.txt,但我已经解释了响应。只是注意到找不到 wxWidgets。这放置在我的 CMAKE_PREFIX_PATH 文件夹中的文件夹“wxWidgets-3.1.4”中
-
"这被放置在我的 CMAKE_PREFIX_PATH 文件夹中的文件夹 "wxWidgets-3.1.4" 中 - 您可能需要将
wxWidgets-3.1.4子目录添加到CMAKE_PREFIX_PATH变量中的路径中.至少,given script 不会在wxWidgets-3.1.4子目录下搜索。