Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<;命令行>;:错误:在makefile中_Makefile_Gnu Make - Fatal编程技术网

<;命令行>;:错误:在makefile中

<;命令行>;:错误:在makefile中,makefile,gnu-make,Makefile,Gnu Make,我正在尝试使用make实用程序编译大量文件。在两次运行之间,我多次出现以下错误 <command-line>: error: macro names must be identifiers :错误:宏名称必须是标识符 因为我使用了-j选项,所以日志显示了随机线程的输出。因此,很难确定遇到此错误的实际文件。也没有其他错误弹出。有人能告诉我这个错误实际上是什么意思吗?不是所有的Makefiles都准备好用-j编译。有时,您只需运行几次make-j,项目就会一直构建到最后。一旦它抛出故

我正在尝试使用make实用程序编译大量文件。在两次运行之间,我多次出现以下错误

<command-line>: error: macro names must be identifiers
:错误:宏名称必须是标识符

因为我使用了-j选项,所以日志显示了随机线程的输出。因此,很难确定遇到此错误的实际文件。也没有其他错误弹出。有人能告诉我这个错误实际上是什么意思吗?

不是所有的
Makefile
s都准备好用
-j
编译。有时,您只需运行几次
make-j
,项目就会一直构建到最后。一旦它抛出故障,您可以随时取下
-j
,并尝试在任何时候使用单个进程完成构建。这可以极大地减少调试时的不可预测性,同时仍然对某些(或几乎所有,如果幸运的话)编译器使用并行构建作业


make(1)
中,我很难找到什么构成标识符,但在大多数语言中,限制通常是这样的:“第一个字符必须是[a-zA-Z],所有其他字符必须是[a-zA-Z0-9_Z]”。我想
make(1)
的规则是相似的。

并不是所有
Makefile
都可以用
-j
编译。有时,您只需运行几次
make-j
,项目就会一直构建到最后。一旦它抛出故障,您可以随时取下
-j
,并尝试在任何时候使用单个进程完成构建。这可以极大地减少调试时的不可预测性,同时仍然对某些(或几乎所有,如果幸运的话)编译器使用并行构建作业


make(1)
中,我很难找到什么构成标识符,但在大多数语言中,限制通常是这样的:“第一个字符必须是[a-zA-Z],所有其他字符必须是[a-zA-Z0-9_Z]”。我想象
make(1)
的规则是类似的。

这不是来自
make
的错误消息,而是来自预处理器(由
make
调用)。
正如其他人所说,在不使用
-j
选项的情况下运行
make
(从开始运行,或者在
make-j
失败后运行),以更清楚地了解错误的来源。

这不是来自
make
的错误消息,而是来自预处理器(由
make
调用)。
正如其他人所说,在不使用
-j
选项的情况下运行
make
(从一开始,或者在
make-j
失败之后),可以更清楚地查看错误的来源。

这是来自C预处理器。当您将a-D开关传递给gcc时,通常会出现无效符号或根本没有符号的情况

根本原因可能是makefile中的一行,如

CFLAGS=-g -D$(DEBUG)

或者类似的东西,调试实际上没有在任何地方定义。

这是来自C预处理器的。当您将a-D开关传递给gcc时,通常会出现无效符号或根本没有符号的情况

根本原因可能是makefile中的一行,如

CFLAGS=-g -D$(DEBUG)

或者类似的,调试实际上没有在任何地方定义。

导致错误的行是什么?:)实际上,作业是并行完成的,所以从输出日志中不可能找出是哪一行导致了这种情况。可能是如果我能知道这个错误在makefiles上下文中的实际含义,我就能找出为什么它会显示出来,导致错误的那一行是什么?:)实际上,作业是并行完成的,所以从输出日志中不可能找出是哪一行导致了这种情况。也许,如果我能知道这个错误在makefiles上下文中的实际含义,我就能找出它出现的原因