makefile command line 传参数
时间: 2023-07-31 09:10:21 浏览: 39
在 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. 如果以上方法都不能解决问题,可以考虑升级操作系统和编译器,以获得更好的兼容性。
error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status
引用中提到的错误信息"error adding symbols: DSO missing from command line"和"collect2: error: ld returned 1 exit status"通常是由编译器链接过程中遇到的问题导致的。
根据引用中的信息,这个错误可能是由于缺少命令行参数导致的。在解决这个问题之前,需要在Makefile.config文件中进行一些修改。
至于引用中提到的原因,这个错误可能是由于缺少库文件或者库文件中缺少对应的函数实现导致的。
为了解决这个问题,你可以尝试以下步骤:
1. 确保你的编译环境正确配置,并且所有的依赖库都已经正确安装。
2. 检查Makefile.config文件,确保正确设置了编译器和链接器的参数。
3. 检查是否缺少某个库文件,如果是的话,可以尝试手动添加该库文件的路径。
4. 检查库文件是否完整,确保库文件中包含了所有需要的函数实现。