【发布时间】:2020-09-01 09:30:30
【问题描述】:
我有一个依赖 IPC 作为外部接口的可执行文件。 我使用介子构建系统编译这个 exec。 外部标头已正确导出。
我正在尝试使用 pkgconfig 注册它,但是 pkgconfig 模块需要一个库来链接。 这里我只需要声明导出的头文件,我需要一个header-only声明。
这是 meson.build 文件的摘录:
executable('myexec',
src,
include_directories : inc,
dependencies : deps,
install : true)
myexec = library('myexec')
pkgconfig = import('pkgconfig')
pkgconfig.generate(myexec)
version : '1.0',
subdirs : 'myexec')
install_headers('include/myexec.h',
subdir : 'myexec')
有了这个,除了生成的 .pc 文件包含一个非空的 Libs 字段并且依赖 myexec.h 的客户端没有要链接的库之外,一切都很顺利:
prefix=/usr/local
libdir=${prefix}/lib/x86_64-linux-gnu
includedir=${prefix}/include
Name: myexec
Description: buttond: myexec
Version: 1.0
Libs: -L${libdir} -lmyexec # here is my issue!
Cflags: -I${includedir}
链接从 myexec.h 调用的客户端可执行文件
/usr/bin/ld: cannot find -lmyexec
这是生成此类包的正确方法吗? 我是否缺少 pkgconfig 模块强制正确生成 .pc 的选项?
谢谢!
【问题讨论】: