整个系统的 Makefile 配置

Makefile configuration for entire system

众所周知,在设备中我们使用命令的时候

make [file-name]

它会自动编译一些标志:

-ggdb -O0 -std=c99 -Wall - Werror

我需要知道CS50编辑的Makefile在哪个目录,因为我想为整个系统配置我自己的Makefile,通过它我可以制作任何.cpp文件. 当我用 make 编译 c++ 文件时,它会自动用 g++ 编译,但我想用 clang++ 编译器编译 .cpp 文件,添加一些必要的标志例如 -g 用于调试 -O0 用于汇编代码。

我想问的是,如果可能的话,如何为特定原因创建 Makefile。

Make 使用当前目录中的 Makefile 和 Implicit-Rules。您可以通过更改那些显式规则使用的变量来修改隐式规则的行为。 例如,要更改 .cpp 文件的编译器,您可以设置自己的 CXX 变量,或者

  1. 在环境中(Make 使用它):

    CXX=clang++ make [file-name]
    #OR
    export CXX=clang++; make [file-name]
    
  2. 在本地 Makefile 中:

    CXX:=clang++
    #The implicit rule, which you'll find in the link, takes care of the rest