在meson.build中运行bash脚本时出现问题



我有一个heder文件vproj.h

#ifndef verVERSION
#define verVERSION "B.32.0"
#endif

以及bash脚本";getVer";要获取版本,请从命令行

/home/../getVer  verVERSION vproj.h
B.32.0

现在我想用run_command 将它嵌入到我的meson.build中

version = run_command('getVer', 'verVERSION','vproj.h').stdout().strip()

但是当我尝试共同配置项目时,我有以下错误

Traceback(上次调用):文件"/usr/local/lib/python3.6/site packages/mesonbuild/mesonmain.py";,线227,运行中return options.run_func(options)文件"/usr/local/lib/python3.6/site packages/mesonbuild/mstup.py";,线281,运行中app.generate()文件"/usr/local/lib/python3.6/site packages/mesonbuild/mstup.py";,线184,生成自我_生成(env)文件"//usr/local/lib/python3.6/site packages/mesonbuild/mstup.py";,线223,在_generate中intr.run()文件"usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreter/py";,线路2476,运行中super().run()文件"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,线路132,运行中self.evaluate_codeblock(self.ast,start=1)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第157行,在evaluate_codeblock中提升e文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第150行,在evaluate_codeblock中self.evaluate_statement(cur)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第165行,在evaluate_statement中self.assignment(cur)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第912行,分配中value=self.evaluate_statement(node.value)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,evaluate_statement中的第179行return self.evaluate_arraystatement(cur)File"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第215行,在evaluate_array语句中(arguments,kwargs)=self.reduce_arguments(cur.args)文件"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第877行,在reduce_arguments中reduced_pos:T.List[T.Union[TYPE_var,InterpreterObject]]=[args.arguments中arg的self.evaluate_statement(arg)]文件"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,877行,在reduced_pos:T.List[T.Union[TYPE_var,InterpreterObject]]=[args.arguments中arg的self.evaluate_statement(arg)]文件"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第163行,在evaluate_statement中return self.function_call(cur)File"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第554行,在function_call中res=func(node,func_args,kwargs)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/decorators.py";,643行,包裹返回f(*wrapped_args,**wrapped_kwargs)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/decorators.py";,643行,包裹返回f(*wrapped_args,**wrapped_kwargs)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/decorators.py";,643行,包裹return f(*wrapped_args,**wrapped_kwargs)[上一行重复5次]文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/decorators.py";,第87行,包裹ret=f(*wrapped_args,**wrapped_kwargs)文件"//usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/decorators.py";,第106行,包裹返回f(*wrapped_args,**wrapped_kwargs)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/decorators.py";,第224行,包装中return f(*nargs,**wrapped_kwargs)File"usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreter/py";,第1569行,函数依赖d=df.查找(kwargs)文件"//usr/local/lib/python3.6/site packages/mesonbuild/pinterpreter/dependencyfallbacks.py";,行334,在查找中dep=func(kwargs,func_args,func_kwargs)文件"/usr/local/lib/python3.6/site packages/mesonbuild/pinterpreter/dependencyfallbacks.py";,_do_subject中的第122行self.interpreter.do_subproject(sub_name,'meson',func_kwargs)文件"usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreter/py";,第909行,在do_subproject中提升e文件"/usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreter/py";,第893行,在do_subproject中回归自我_do_subproject_meson(sub_name、subdir、default_options、kwargs)文件"usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreter/py";,第932行,在_do_subject_meson中subi.run()文件"usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreter/py";,线路2476,运行中super().run()文件"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,线路132,运行中self.evaluate_codeblock(self.ast,start=1)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第157行,在evaluate_codeblock中提升e文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第150行,在evaluate_codeblock中self.evaluate_statement(cur)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第165行,在evaluate_statement中self.assignment(cur)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第912行,分配中value=self.evaluate_statement(node.value)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第167行,在evaluate_statement中return self.method_call(cur)File"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第567行,在method_call中obj=self.evaluate_statement(可调用)文件"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第167行,在evaluate_statement中return self.method_call(cur)File"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第567行,在method_call中obj=self.evaluate_statement(可调用)文件"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第163行,在evaluate_statement中return self.function_call(cur)File"usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/intereterBase.py";,第554行,在function_call中res=func(node,func_args,kwargs)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/decorators.py";,643行,包裹返回f(*wrapped_args,**wrapped_kwargs)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/decorators.py";,643行,包裹返回f(*wrapped_args,**wrapped_kwargs)文件"/usr/local/lib/python3.6/site packages/mesonbuild/intereterbase/decorators.py";,第106行,包裹返回f(*wrapped_args,**wrapped_kwargs)文件"usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreter/py";,func_run_command中的第749行return self.run_command_pimpl(node,args,kwargs)文件"usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreter/py";,第817行,在run_commandimpl中in_builddir=in_builddir,check=check,capture=capture)文件"usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreterobjects.py";,第166行,在initself.returncode,self.stdout,self.sderr=self.run_command(cmd,args,env,source_dir,build_dir,subdir,mesonintrospect,in_builddir,check)文件"usr/local/lib/python3.6/site-packages/mesonbuild/pinterpreterobjects.py";,第198行,在run_command中p、 o,e=Popen_safe(command_array,stdout=stdout,env=child_env,cwd=cwd)文件"/usr/local/lib/python3.6/site packages/mesonbuild/mesonlib/universal.py";,1398号线,波彭萨菲stdout=stdout,stderr=stderr,**kwargs)文件"usr/lib64/python3.6/subprocess.py";,第729行,在initrestore_signals,start_new_session)文件中/usr/lib64/python3.6/subprocess.py";,第1364行,在_execute_child中引发child_exception_type(errno_num、err_msg、err_filename)OSError:[Erno 8]执行格式错误:'/home//getVer失败:build.ninja

run_command的用法有什么问题?

我终于通过插入让我的工作起来了

#!/bin/bash

在脚本的开头。

你的也适用于我,尽管我在猜测getVER包含什么。

最新更新