Link X11 使用 BUCK 构建 CPP 应用程序
Link X11 using BUCK build for a CPP application
我在尝试使用 buck 编译依赖于 X11 的 CPP 应用程序时遇到问题,因为它似乎没有链接 X11 库并导致未定义的引用错误:
undefined reference to `XOpenDisplay'
collect2: error: ld returned 1 exit status
研究错误后,我尝试修改 BUCK 文件 以提供正确的标志并尝试了几种不同的格式:
platform_linker_flags = [
# ('^linux.*', ['-lX11','-L/usr/X11/lib','-I/opt/X11/include'])
('^linux.*', []),
('^linux.*', ['-lX11']),
('^linux.*', ['-L/usr/X11/lib']),
],
如上所示,我尝试更改结构等以查看它是否对链接过程产生影响,但它仍然无法解决 XOpenDisplay 所需的依赖关系。
任何人都可以解释或参考将系统库应用于降压项目的正确方法,或暗示此构建中可能出现的问题。
尝试为系统库创建 "dummy" 目标:
prebuilt_cxx_library(
name = 'x11',
header_only = True,
exported_platform_linker_flags = [
('linux.*', [ '-lX11' ]),
],
)
cxx_library(
name = 'foo',
srcs = glob([
'**/*.cpp',
]),
deps = [
':x11',
],
)
这是Buckaroo
使用的方法
我在尝试使用 buck 编译依赖于 X11 的 CPP 应用程序时遇到问题,因为它似乎没有链接 X11 库并导致未定义的引用错误:
undefined reference to `XOpenDisplay'
collect2: error: ld returned 1 exit status
研究错误后,我尝试修改 BUCK 文件 以提供正确的标志并尝试了几种不同的格式:
platform_linker_flags = [
# ('^linux.*', ['-lX11','-L/usr/X11/lib','-I/opt/X11/include'])
('^linux.*', []),
('^linux.*', ['-lX11']),
('^linux.*', ['-L/usr/X11/lib']),
],
如上所示,我尝试更改结构等以查看它是否对链接过程产生影响,但它仍然无法解决 XOpenDisplay 所需的依赖关系。
任何人都可以解释或参考将系统库应用于降压项目的正确方法,或暗示此构建中可能出现的问题。
尝试为系统库创建 "dummy" 目标:
prebuilt_cxx_library(
name = 'x11',
header_only = True,
exported_platform_linker_flags = [
('linux.*', [ '-lX11' ]),
],
)
cxx_library(
name = 'foo',
srcs = glob([
'**/*.cpp',
]),
deps = [
':x11',
],
)
这是Buckaroo
使用的方法