Firefox生成文件 我想回溯Firefox的MaFo文件,这样我就可以得到最后的GCC命令,用于编译C++文件。我该怎么做?

Firefox生成文件 我想回溯Firefox的MaFo文件,这样我就可以得到最后的GCC命令,用于编译C++文件。我该怎么做?,firefox,makefile,Firefox,Makefile,能否将make的输出重定向到一个文件,然后使用文本编辑器搜索感兴趣的行?能否将make的输出重定向到一个文件,然后使用文本编辑器搜索感兴趣的行?通常的特技是用读取gcc命令行的程序替换gcc, 将其存储在某个日志文件中以便检查,然后使用命令行启动gcc。你可以用这个跳板程序替换开发目录中的“gcc.exe”来实现这一点。通常的特技是用读取gcc命令行的程序替换gcc, 将其存储在某个日志文件中以便检查,然后使用命令行启动gcc。您可以通过将开发目录中的“gcc.exe”替换为此跳板程序来完成此操

能否将
make
的输出重定向到一个文件,然后使用文本编辑器搜索感兴趣的行?

能否将
make
的输出重定向到一个文件,然后使用文本编辑器搜索感兴趣的行?

通常的特技是用读取gcc命令行的程序替换gcc,
将其存储在某个日志文件中以便检查,然后使用命令行启动gcc。你可以用这个跳板程序替换开发目录中的“gcc.exe”来实现这一点。

通常的特技是用读取gcc命令行的程序替换gcc,
将其存储在某个日志文件中以便检查,然后使用命令行启动gcc。您可以通过将开发目录中的“gcc.exe”替换为此跳板程序来完成此操作。

如果您在其中发现一行以“@$(CXX)”或“@g++”开头,则将该行更改为“$(CXX)”或“g++”-换句话说,从该行中删除“@”符号。当“@”符号出现在Makefile中命令的开头时,会导致Make在执行命令之前不回显该命令。删除“@”符号将导致在调用命令之前回显行的扩展形式

我没有看过Firefox的makefile,所以很可能他们正在使用预定义的模式规则来构建代码,在这种情况下,您不会看到任何以“$(CXX)”开头的行。如果是这种情况,则需要重写规则,以便默认生成规则在执行命令之前响应命令

有关重写Makefile模式生成规则的详细信息,请参阅以下链接:


如果您在其中发现一行以“@$(CXX)”或“@g++”开头,则将该行更改为“$(CXX)”或“g++”-换句话说,从该行中删除“@”符号。当“@”符号出现在Makefile中命令的开头时,会导致Make在执行命令之前不回显该命令。删除“@”符号将导致在调用命令之前回显行的扩展形式

我没有看过Firefox的makefile,所以很可能他们正在使用预定义的模式规则来构建代码,在这种情况下,您不会看到任何以“$(CXX)”开头的行。如果是这种情况,则需要重写规则,以便默认生成规则在执行命令之前响应命令

有关重写Makefile模式生成规则的详细信息,请参阅以下链接:


< p>这里编译C++文件的make规则:


如果你想做的就是替换编译器,你可以(在MyZCONFIG或配置命令行中)设置CXX=“任意”。

< P>这里是编译C++文件的make规则:


如果您只想更换编译器,您可以(在mozconfig中或在configure命令行上)设置CXX=“随便什么”。

您需要编写一个名为“gcc.exe”的自定义程序(例如使用C编译器)来读取命令行等。这不是一个小程序,但也不是很大的程序。替换原来的gcc.exe是将原来的gcc_original.exe移动到“gcc_original.exe”并将您的版本停在gcc曾经所在的位置;显然,您必须将控制权与原始命令行一起传递给gcc_original.exe。请参阅各种流程分叉命令,以找到正确的方法来执行此操作(我在大约10年前做过此操作,但忘记了您需要的精确调用)。不要期望这是一项20分钟的工作。虽然这是一项有用的技术,但在这种情况下,这似乎有些过分,因为
make
会将它运行的每个命令行打印到控制台。我是否可以创建一个bash脚本来分析参数并将其传递到gcc?这取决于他想做什么。如果他只想看线路,管道可能会起作用。如果他想重用这行代码来驱动静态分析工具(模拟gcc的功能),那么他可能想按照我描述的方式自动化它。您可以尝试一下。您需要编写一个名为“gcc.exe”(使用C编译器)的自定义程序来读取命令行等。这不是一个小程序,但也不是很大的程序。替换原来的gcc.exe是将原来的gcc_original.exe移动到“gcc_original.exe”并将您的版本停在gcc曾经所在的位置;显然,您必须将控制权与原始命令行一起传递给gcc_original.exe。请参阅各种流程分叉命令,以找到正确的方法来执行此操作(我在大约10年前做过此操作,但忘记了您需要的精确调用)。不要期望这是一项20分钟的工作。虽然这是一项有用的技术,但在这种情况下,这似乎有些过分,因为
make
会将它运行的每个命令行打印到控制台。我是否可以创建一个bash脚本来分析参数并将其传递到gcc?这取决于他想做什么。如果他只想看线路,管道可能会起作用。如果他想重用这行代码来驱动静态分析工具(模拟gcc的功能),那么他可能想按照我描述的方式自动化它。您可以尝试一下。makefile中没有“$(cxx)”类型的标记或行。在这种情况下,您必须重写模式规则,如中所示(只是提醒一句,由于堆栈溢出注释的限制,以下内容无法正确分隔):%.o:%.cpp$(cxx)$<-o$@没有“$(cxx)”makefile中的标记或行的类型。在这种情况下,您必须覆盖模式规则,如中所示(只是提醒一句,由于堆栈溢出注释的限制,以下内容不能正确分隔):%.o:%.cpp$(CXX)$<-o$@firefox makefiles包含“$(CXX)”symbol和我通过管道将makefile的输出传输到t