从一个琐碎的meson.build
文件中,我得到以下错误:
介子内部版本:27:0:错误:文件dataStructures.hpp不存在。
dataStructures.hpp,
meson.build
文件为:
headers += [
'dataStructures.hpp',
'interface.hpp',
'platform.hpp',
'progArgs.hpp',
]
报告为丢失的文件存在,并且与meson.build文件位于同一目录中。
如果我从列表中删除"dataStructures.hpp"字符串,我会在第二个文件"interface.hpp"中得到相同的错误。
我做错了什么?
更多详细信息如下。
> CC=clang CXX=clang++ meson /dev/shm/test-build
The Meson build system
Version: 0.52.0
Source dir: /home/pietrom/myProgs/test
Build dir: /dev/shm/test-build
Build type: native build
Project name: test
Project version: 0.0.1
C++ compiler for the host machine: clang++ (clang 8.0.1 "clang version 8.0.1 (tags/RELEASE_801/final)")
C++ linker for the host machine: GNU ld.bfd 2.32
Host machine cpu family: x86_64
Host machine cpu: x86_64
src/meson.build:27:0: ERROR: File dataStructures.hpp does not exist.
A full log can be found at /dev/shm/test-build/meson-logs/meson-log.txt
在完整的日志中,没有比已经报告的内容更多的内容。
这是项目目录结构:
test/
meson.build
src/
meson.build
sources
config/
meson.build
sources
testers/
meson.build
sources
utilities/
meson.build
sources
因为您没有提供所有的meson.build文件内容,最重要的是它发生的地方-meson.build:27:0:错误:文件dataStructures.hpp不存在-指向某个meson.build文件中的第27行,我将尝试猜测您在根meson.build文件中构建可执行文件,即在test/meson.build中,但是您的头在test/src内。如果是这样的话,你根本不需要这个头数组,只需要添加
inc = include_directories('./src')
some_test_exe = executable('mytest',
test_sources,
...
include_directories : inc
)
includedirectories函数创建包含对象,该对象的路径相对于源根目录。