擅长:python、mysql、java
<p>为了使构建定义更加健壮,您可以首先使用<a href="http://mesonbuild.com/Reference-manual.html#find_program" rel="nofollow noreferrer"><em>find_program()</em></a>查找python可执行文件。如果找不到python(可以通过传递<code>required: false</code>作为参数来更改此行为),这将导致生成停止。在</p>
<p>然后,如果参数是文件或目录,为了确保不存在路径问题,请确保用<a href="http://mesonbuild.com/Reference-manual.html#files" rel="nofollow noreferrer"><em>files()</em></a>包装这些参数。在</p>
<p>总而言之:</p>
<pre><code>python_exe = find_program('python3', 'python')
params = files('file1', 'dir/file2')
r = run_command(python_exe, params, 'arg1', 'arg2')
if r.returncode() != 0
error('Error message')
endif
</code></pre>
<hr/>
<p>您还可以考虑使用实际的构建目标(例如<a href="http://mesonbuild.com/Reference-manual.html#generator" rel="nofollow noreferrer"><em>generator()</em></a>或<a href="http://mesonbuild.com/Reference-manual.html#custom_target" rel="nofollow noreferrer"><em>custom_target()</em></a>)通过python定义代码生成。因此,可以保证编译后的目标代码只能作为目标代码生成,所以只能用c++编译。在</p>