问题标签 [meson-build]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Meson 选择了错误的编译器(GCC 而不是 clang)
我正在尝试将我的项目配置为使用 LLVM/clang++ 构建,但是总是选择 GCC:
操作系统是 Debian Linux 9。
这是meson.build
文件:
如何说服 Meson 使用 clang?
c - 在另一个头文件中包含外部库的头文件
目前我有以下项目结构,其中libs
目录的目的是存储我从 github 下载的外部 C 库,因为它们在我的操作系统的存储库中不可用:
在哪里libs/meson.build
:
modules/meson.build
是:
并且meson.build
是:
当我尝试制作一个#include "pqueue/pqueue.h"
inside时出现了我的问题a_star.h
,它说/modules/algorithms/a_star.h:5:10: fatal error: pqueue/pqueue.h: No such file or directory
,但是当我将 include 移动到a_star.c
错误消失时。遗憾的是,我需要将它包含在头文件中,因为我需要导出一个使用 pqueue.h 类型的结构
有没有办法在 a_star.h 中包含 pqueue.h 而不使用类似的路径../../libs/pqueue/pqueue.h
?
python - 如何从 Meson 启动外部 Python 程序?
在构建我的项目之前,我必须使用 Meson 构建系统通过 Python 脚本生成 C++ 源文件。
这是正确的方法吗,即将 Python 视为通用的外部命令?
或者,作为 Meson 本身是一个 Python 程序,是否有可能以更直接的方式做同样的事情?
c++ - 如何正确使用生成的 protobuf 源?
当我尝试使用由 protobuf 生成的源时,'-std=c++11' 被添加到我尝试使用它们的目标的编译标志中,导致编译失败(因为我使用的是 C++11 后特性)。
遵循一个非常简单的例子。3个文件,全部在一个目录中:
介子.build
主文件
defs.proto
运行后meson build && ninja
失败并出现以下错误:
问题是:如何修复 meson.build 文件,以便正确生成源并且仅std=
通过指定的标志project( default_options
?
c++ - 依赖子目录兄弟的介子目标
这是我的项目结构:
我想将我的构建移植到 Meson。但是,我不确定如何链接兄弟文件夹中定义的目标。
我的依赖图如下所示:
src/abc/meson.build
定义一个静态库abc
src/def/meson.build
定义了一个静态库def
,它依赖于abc
和foo
src/ghi/meson.build
ghi
定义一个依赖于的静态库bar
vendor/bar/meson.build
定义一个静态库bar
vendor/foo/meson.build
定义一个静态库foo
- 顶层定义了一个依赖于
meson.build
的可执行文件,并且app
abc
def
ghi
在文档中,似乎有两种机制:
subdir
subproject
我不清楚这里哪个最好。我的源代码之外没有任何依赖项。
我应该在我的meson.build
文件中写什么来将这些目标链接在一起?
fuse - 如何在没有 sudo 的情况下安装 sshfs?
我正在尝试sshfs
在我无权root
访问的集群上构建。
按照这些说明,我做了:
1) 建造和ninja
安装meson
2)libfuse
内置meson --prefix=/cluster/home/user/fuse
尝试安装libfuse
( ninja install
) 时会出现问题,这需要 root 凭据。我收到以下错误:
运行自定义安装脚本 '/cluster/home/user/fuse/libfuse/util/install_helper.sh /cluster/home/user/fuse/etc /cluster/home/user/fuse/bin /usr/lib/udev/rules. d' chown:更改“/cluster/home/user/fuse/cluster/home/user/fuse/bin/fusermount3”的所有权:不允许操作
如何安装libfuse
构建sshfs
?
meson-build - Prefix all sources with src/ in Meson
Relative to my project root where meson.build is located, all of my source files are under src/
.
Is it possible to specify these source files in meson.build in a way that wouldn't force me to prefix them all with src/
, given that that's somewhat redundant?
meson-build - 如何从 Meson 构建中的源文件派生可执行名称?
我正在尝试在 Meson 中创建一个单元测试目标列表,每个测试用例都从一个源文件构建。源文件在子目录中使用 files() 命令定义:
我想做的是在顶级构建中是这样的:
我知道如果文件名是纯字符串,则可以执行此操作,但上述方法失败并出现“文件对象不可调用”错误。
是否有更“中音”的方式从源文件名派生可执行/测试名称?
arm - 在介子中,有没有办法覆盖交叉构建定义文件中的内置选项?
我目前正在评估嵌入式项目的不同构建系统(例如:基于 FreeRTOS),我遇到了介子。我觉得很好,主要是有一个交叉构建定义文件来定义我的项目需要如何编译的想法。
不过,我确实对一些基本选项有疑问,例如:
- b_pch
- b_staticpic
也就是说,默认情况下,设置为true
。在我的项目中,这些选项会生成错误的二进制文件...
正如介子所提出的,目前的解决方案是:
但不知何故,我觉得必须在交叉构建定义文件之外定义编译和链接器选项并不好......
我想知道是否有办法覆盖文件本身中的这些选项......
如果不是,你认为我应该在介子项目中创建一张票来请求这个功能吗?
我希望是这样的: