我正在尝试编译一个使用xlib和cmake的c ++程序。但是,我遇到了一个问题,包括并在cmake文件中链接xlib库。
这是我得到的错误。
[defaults]
host_key_checking = False
当我只使用命令行进行编译时,它的工作正常。
我使用此命令(g ++ main.cpp -L / usr / X11R6 / lib -lX11)
这是我的cmake文件。
[type="checkbox"]+label {
display: inline;
}
答案 0 :(得分:2)
在您的情况下,您忘记指定cmake用于链接您的应用程序的库(target_link_libraries
或link_libraries
)。
但是,为什么不让cmake自己找到所需的路径,库和包含?我建议你使用find_package(X11)
。在您的情况下,您可以尝试:
cmake_minimum_required(VERSION 3.6)
project(project1)
set(CMAKE_CXX_STANDARD 11) # for c++11
find_package(X11 REQUIRED)
link_libraries(${X11_LIBRARIES})
include_directories(${X11_INCLUDE_DIR})
set(SOURCE_FILES main.cpp)
add_executable(project1 ${SOURCE_FILES})
答案 1 :(得分:0)
我将无法解释原因(如果您有任何想法,请毫不犹豫地评论我的答案),但就我而言,我必须使用以下命令链接X11库:
target_link_libraries( DisplayImage "-lX11" )
至少在cmake的3.5.1版本中有效。