makefile command line 传参数
时间: 2023-07-31 14:10:21 浏览: 123
在 Makefile 中,可以通过 `$(MAKE)` 变量来递归调用 make 命令,并且可以通过命令行传递参数给 Makefile,这些参数可以在 Makefile 中被访问和使用。
传递参数的语法是在 `make` 命令后面添加参数名和参数值,例如:
```
make ARG1=value1 ARG2=value2
```
在 Makefile 中,可以使用 `${VAR}` 或者 `$(VAR)` 语法来获取参数的值,例如:
```
# 在 Makefile 中
target:
echo "参数1的值是 ${ARG1}"
echo "参数2的值是 ${ARG2}"
```
输出将会是:
```
参数1的值是 value1
参数2的值是 value2
```
注意,如果参数值中含有空格或者特殊字符,需要用引号将其括起来,例如:
```
make ARG1="value with space" ARG2='value with $pecial character'
```
相关问题
unrecognized command line option '-m64'
这个错误通常出现在使用较老的编译器或者编译器版本不兼容的情况下。可以尝试以下几个解决方法:
1. 如果你使用的是 GCC 编译器,尝试更新到最新版本。
2. 确认你的编译器是否支持 -m64 选项。不是所有的编译器都支持该选项。
3. 如果你的编译器不支持 -m64 选项,可以尝试使用 -m32 选项来编译 32 位的程序。
4. 如果你使用的是 Makefile 来编译程序,可以尝试修改 Makefile 中的编译参数,将 -m64 改为 -m32 或者去掉该选项。
5. 如果以上方法都不能解决问题,可以考虑升级操作系统和编译器,以获得更好的兼容性。
在make prepare时报错aarch64-none-linux-gnu-gcc: error: unrecognized argument in option '-mcmodel=kernel' aarch64-none-linux-gnu-gcc: note: valid arguments to '-mcmodel=' are: large small tiny aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-sse'; did you mean '-fno-dse'? aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-mmx' aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-sse2' aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-3dnow' aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-m64' aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-red-zone' scripts/Makefile.build:273: recipe for target 'scripts/mod/empty.o' failed具体如何解决
这个错误可能是由于编译器版本不兼容或编译选项有误导致的。您可以尝试以下步骤来解决该问题:
1. 确认您使用的是正确版本的编译器。您可以尝试更新编译器或使用另一个版本的编译器。
2. 检查编译选项。在Makefile中,可能有一些选项需要根据您的编译器版本进行调整。 您可以尝试删除一些选项,或者添加一些适当的选项,例如:
-mcmodel=large
-mno-sse -fno-dse
-mno-mmx
-mno-sse2
-mno-3dnow
-mno-red-zone
3. 检查您的内核配置。您可以尝试禁用CONFIG_STRICT_KERNEL_RWX选项,并重新编译内核。
希望这些解决方案可以帮助您解决问题。
阅读全文