我怎么能用他的安装目录替换CMakeList的find_package?

时间:2016-06-03 17:49:53

标签: cmake sfml

我需要按来源安装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()

我没有超级用户权限。

1 个答案:

答案 0 :(得分:1)

尝试将xcb /include/lib目录添加到您的CMake列表中,添加以下行:

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

希望有所帮助!