c - Vala:使用库不起作用:找不到 taglib、tag_c.h

标签 c linux dependencies vala meson-build

所以我正在尝试为使用 taglib 库的 elementary os 制作一个应用程序。目前我将库安装到 '/usr/include/taglib/' 但是当我尝试使用 sudo ninja install 构建我的应用程序时它说找不到'tag_c.h' 我的应用程序编译后的 c 代码中的文件。但是可以在上述目录中找到此 'tag_c.h' 文件。

我的介子文件的重要部分如下所示:

dependencies = [
    dependency('gio-unix-2.0', version: '>=2.20'),
    dependency('granite'),
    dependency('taglib_c')
]
...
executable(
    meson.project_name(),
    code_files,
    dependencies: dependencies,
    install: true
)

当我删除实际使用 TagLib 库的代码行时,构建我的应用程序时没有出现任何错误:

 TagLib.File f = new TagLib.File(path);

所以也许这意味着它找到了 vapi,但找不到它的 C 代码?

首先,我该如何解决这个问题?

其次,这只是我机器上的问题吗?我如何确保安装我的应用程序的其他人也安装了 taglib,仅通过介子构建它并使其立即运行?

最佳答案

elementary OS 基于 Debian/Ubuntu,所以我认为您还需要安装 libtagc0-dev。这包括相关的 pkg-config 文件和 C 头文件以使用 TagLib 的 C 接口(interface)。

关于c - Vala:使用库不起作用:找不到 taglib、tag_c.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56609077/

相关文章:

c++ - 如何设计相互依赖的策略类实现

c - 矩阵乘法和幂 c

c - gcc 共享库链接到 glibc 失败

c - 打印堆栈指针与 backtrace() 打印输出

linux - 如何使用fuse挂载远程计算机中的目录?

Android 传递依赖

缓冲区中的字符阻止整数输入

C 预处理器宏替换

Cygwin 的 Linux 交叉编译器——无法在线找到 Linux Cygwin 编译器工具链

continuous-integration - 为什么 TeamCity 会遗漏一个引用并导致编译失败?