开发日常makefile解决Makefile版本过高导致的编译问题
Posted Evan_ZGYF丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发日常makefile解决Makefile版本过高导致的编译问题相关的知识,希望对你有一定的参考价值。
摘要:
在openEuler上降低makefile的版本
最近在openEuler编译时遇到makefile报错,但是相同的代码在老的CENTOS下时可以编译成功的。
排查时发现openEuler的“make -v”版本较高
计划降低make版本后,重新编译试试。
问题原因:
发现了一个很神奇的现象,
不同的编译机下,去执行相同的makefile,
这个makefile里面就是将“\\#include <stdio.h> int main() return 0; ”这段字符输出到一个文件里
但是结果是不一样的,
一台编译机(openEuler)输出的结果是“\\#include <stdio.h> int main() return 0; ”
另一台编译机(CENTOS)输出的结果是“#include <stdio.h> int main() return 0; ”
解决思路:
怀疑是makefile的问题?通过"make -v"对比两边的make版本差异
openEuler:
CENTOS:
怀疑是shell的问题?通过“/bin/bash”对比两边的shell版本差异
openEuler:
CENTOS:
解决方案:
在openEuler上安装make 3.82版本。
【开发工具】【make】make 3.82源码编译安装.note
以上是关于开发日常makefile解决Makefile版本过高导致的编译问题的主要内容,如果未能解决你的问题,请参考以下文章
开发日常makefile解决Makefile版本过高导致的编译问题