用X11(c++)链接lib的目标失败



我正在将CMake C++项目转换为介子。剩下的一件事就是正确运行它。我在我的项目库中使用了一个X11库。

使用CMake,项目链接工作正常:

...
target_link_libraries(hamster ui util ${GTKMM_LIBRARIES} ${X11_LIBRARIES} -lX11 -lXtst -lXext)

如何将-lX11 -lXtst -lXext标志添加到介子项目中?我尝试了一些解决方案,如link_args,但没有帮助。我收到:

ninja: Entering directory `build'
[17/19] Linking target src/ui_lib/libui.so.
FAILED: src/ui_lib/libui.so
/home/repos/project/build/../src/ui_lib/ui/window/WindowBody.cpp:583: undefined reference to `XTestGrabControl'

下面的正确答案:

gtkmm_dep = dependency('gtkmm-3.0')
x11_dep = dependency('x11')
xtst_dep = dependency('xtst')
xext_dep = dependency('xext')
ui = library('ui', dependencies : [gtkmm_dep, x11_dep, xtst_dep, xext_dep, util_dep],
sources : [
'ui/window/WindowBody.h', 'ui/window/WindowBody.cpp',
]
)
ui_dep = declare_dependency(
include_directories : include_directories('.'),
link_with : ui
)

相关内容

最新更新