我怎么能用它的安装目录替换CMakeList的find_package?
How could I replace a find_package of CMakeList by its installation directory?
我需要通过源代码安装 SFML,但我不能 运行 cmake,因为没有安装包 (xcb-image
)
我通过源代码安装了这个包,但是我如何告诉 CMake 这个包已经安装,它需要查看一个特殊的目录?
if(NOT SFML_OPENGL_ES)
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})
if(SFML_OS_LINUX OR SFML_OS_FREEBSD)
find_package(XCB COMPONENTS xlib_xcb image randr REQUIRED)
if(NOT LIBXCB_FOUND)
message(FATAL_ERROR "Xcb library not found")
endif()
include_directories(${LIBXCB_INCLUDE_DIRS})
endif()
endif()
我没有root权限。
尝试将 xcb
/include
和 /lib
目录添加到您的 CMakeLists,方法是添加以下行:
INCLUDE_DIRECTORIES(/path/to/your/xcb/include)
LINK_DIRECTORIES(/path/to/your/xcb/lib)
否则,如果这不起作用并且您有一个用于 cxb 的 cmake 文件(类似于 xcb.cmake),请在您的项目根目录下创建一个名为 cmake/Modules/ 的文件夹,添加 xcb.cmake
在该文件夹下,并在根 CMakeLists.txt 中包含以下代码:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
为了更好地理解,请查看 CMake:How To Find Libraries
希望对您有所帮助!
我需要通过源代码安装 SFML,但我不能 运行 cmake,因为没有安装包 (xcb-image
)
我通过源代码安装了这个包,但是我如何告诉 CMake 这个包已经安装,它需要查看一个特殊的目录?
if(NOT SFML_OPENGL_ES)
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})
if(SFML_OS_LINUX OR SFML_OS_FREEBSD)
find_package(XCB COMPONENTS xlib_xcb image randr REQUIRED)
if(NOT LIBXCB_FOUND)
message(FATAL_ERROR "Xcb library not found")
endif()
include_directories(${LIBXCB_INCLUDE_DIRS})
endif()
endif()
我没有root权限。
尝试将 xcb
/include
和 /lib
目录添加到您的 CMakeLists,方法是添加以下行:
INCLUDE_DIRECTORIES(/path/to/your/xcb/include)
LINK_DIRECTORIES(/path/to/your/xcb/lib)
否则,如果这不起作用并且您有一个用于 cxb 的 cmake 文件(类似于 xcb.cmake),请在您的项目根目录下创建一个名为 cmake/Modules/ 的文件夹,添加 xcb.cmake
在该文件夹下,并在根 CMakeLists.txt 中包含以下代码:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
为了更好地理解,请查看 CMake:How To Find Libraries
希望对您有所帮助!