在 makefile 中设置 GCC 路径

Pav*_*ari 5 c++ gcc makefile gnu-make c++11

每当我构建我的包时,它都会使用/usr/bin/g++(系统编译器)。我想用 C++11 构造构建我的包。我试过-std=c++11选项,但系统编译器显示无法识别的选项。我想从不同的gcc编译器构建我的包,该编译器将作为我的包依赖项的一部分下载。

那么,如何gcc在 Makefile 中指定编译器的位置?

眠りネ*_*ネロク 7

有多种方法可以实现您的目标:

  1. CXX仅为将运行的进程设置环境变量make

    $ CXX=/path-to-your-compiler/g++ make
    
    Run Code Online (Sandbox Code Playgroud)
  2. CXX在 shell 中导出环境变量:

    $ CXX=/path-to-your-compiler/g++
    $ export CXX
    $ make
    
    Run Code Online (Sandbox Code Playgroud)
  3. 设置CXXmake的命令行:

    $ make CXX=/path-to-your-compiler/g++
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在你的 makefile 中:

    CXX := /path-to-your-compiler/g++
    
    Run Code Online (Sandbox Code Playgroud)

请注意,在make的命令行中设置变量会覆盖其他值,并且在 makefile 中设置的变量会覆盖从环境中获取的变量(除非提供了命令行选项-e--environment-overrides)。

在您的 makefile 中,您仍然可以使用以下override指令覆盖通过其他方式设置的任何值:

override CXX := /path-to-your-compiler/g++
Run Code Online (Sandbox Code Playgroud)