如何将多编译器参数添加到 meson.build

Posted

技术标签:

【中文标题】如何将多编译器参数添加到 meson.build【英文标题】:How to add multi compiler parameters to meson.build 【发布时间】:2020-04-18 06:24:36 【问题描述】:

通常我使用它来编译我的 vala 代码之一: valac --pkg gtk+-3.0 -X -lm %f


现在我尝试介子/忍者,

meson build --prefix=/usr

然后我编辑 meson.build,添加两行。 (经过大量搜索)

    link_args : '-X',
    link_args : '-lm',

整个部分是

executable(
    meson.project_name(),
    'src/Application.vala',
    dependencies: [
        dependency('gtk+-3.0')
    ],
    link_args : '-X',
    link_args : '-lm',
    install: true
)

忍者现在过去了,但它说:

meson.build:5: WARNING: Keyword argument "link_args" defined multiple times.
WARNING: This will be an error in future Meson releases.

那么如何正确添加多编译器参数呢?

【问题讨论】:

【参考方案1】:

你可以试试这个,在依赖部分

meson.get_compiler('c').find_library('m', required: false),

这应该会为您添加数学库链接。

【讨论】:

库名有点难理解 -> 'm'。如果我想使用--pkg librsvg-2.0,如何找到名称? 库的名称m指的是作为libc一部分的数学库。可以通过dependency () 函数在您的meson.build 文件中添加包。例如dependency ('librsvg-2.0'),【参考方案2】:

另一种方法是使用数组

executable(
    meson.project_name(),
    'src/Application.vala',
    dependencies: [
        dependency('gtk+-3.0')
    ],
    link_args : ['-X', '-lm',],   # <- here
    install: true
)

【讨论】:

以上是关于如何将多编译器参数添加到 meson.build的主要内容,如果未能解决你的问题,请参考以下文章

使用meson build我可以定义项目内的依赖项吗?

为 Meson Build 运行特定测试

spa/meson.build:29:4:错误:找不到依赖项“bluez”,在 Ubuntu 16.04 中安装 PIPEWIRE 时尝试了 pkgconfig 和 cmake

介子:在声明之前使用库

尽管源和依赖关系已过期,但 Meson custom_target 永远不会执行

将多线程或异步添加到 Web 抓取