Makefile--自动识别编译环境(x86还是arm)进行编译

在日常工作中,我们会在虚拟机下的x86系统进行架叉编译,有时需要在arm上直接进行编译。但工程都是一样的,只是Makefile不一样,这时就涉及到Makefile的灵活运用了。以下是一个自动识别编译环境的通用Makefile:

TARGET_ARCH1 := arm
ifneq ($(shell uname -m | grep -c 'x86'), 0)
    TARGET_ARCH1 := x86
endif

ifeq ($(TARGET_ARCH1),arm)
    CXX = g++
    CC = gcc
else
    CXX = arm-linux-gnueabihf-g++
    CC = arm-linux-gnueabihf-gcc
endif

SRC = $(wildcard ./*.c)                                     #wildcard把指定目录>下的所有后缀是cpp的文件全部展开
OBJS=$(patsubst %.c,%.o,$(SRC))                              #所有.o的变量

all:$(TARGET) target
permission:
    @chmod 777 run.sh

$(TARGET):$(OBJS)
    @echo Linking $(notdir $@)
    @$(CXX) -rdynamic -o $@ $^  $(LIBPATH) $(LIBVAR)    #rdynamic
    
%.o:%.cpp
    @echo Compiling $<
    @$(CXX)  $(CFLAGS) -c $< -o $@ -fpermissive

.PHONY:clean
clean:
    rm -rf ./$(TARGET)
    rm -rf ./*.o

相关推荐

  1. Makefile--自动识别编译环境x86arm进行编译

    2024-07-12 13:34:03       19 阅读
  2. sparkctl x86/arm不同平台编译使用

    2024-07-12 13:34:03       29 阅读
  3. 编译gdb:在x86虚拟机上,加载分析arm程序及崩溃

    2024-07-12 13:34:03       35 阅读
  4. Ubuntu 18.04 x86_64 上交叉编译 boost 库(ARMv7L)

    2024-07-12 13:34:03       51 阅读
  5. am62x MCU SDK编译环境搭建

    2024-07-12 13:34:03       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 13:34:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 13:34:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 13:34:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 13:34:03       69 阅读

热门阅读

  1. docker安装mysql8.0.23

    2024-07-12 13:34:03       22 阅读
  2. RPC与REST

    2024-07-12 13:34:03       20 阅读
  3. Opencv中的直方图

    2024-07-12 13:34:03       17 阅读
  4. python 如何处理图片 举例说明

    2024-07-12 13:34:03       16 阅读
  5. DangerWind-RPC-framework---四、SPI

    2024-07-12 13:34:03       20 阅读
  6. OpenCV:解锁计算机视觉的魔法钥匙

    2024-07-12 13:34:03       19 阅读
  7. 使用sklearn的基本流程

    2024-07-12 13:34:03       20 阅读
  8. qt udp 只创建服务端链接

    2024-07-12 13:34:03       24 阅读
  9. 开发不认可bug策略

    2024-07-12 13:34:03       22 阅读
  10. 深入理解sklearn中的模型参数优化技术

    2024-07-12 13:34:03       23 阅读
  11. Android C++系列:Linux守护进程

    2024-07-12 13:34:03       20 阅读
  12. hive中reverse函数

    2024-07-12 13:34:03       21 阅读
  13. 03-NoSQL之Redis配置与优化

    2024-07-12 13:34:03       15 阅读
  14. 编程是学什么:探索编程世界的四大核心领域

    2024-07-12 13:34:03       19 阅读
  15. npm error code 1

    2024-07-12 13:34:03       18 阅读
  16. npm link,npm unlink调试本地开发npm包

    2024-07-12 13:34:03       18 阅读
  17. Dubbo之SPI、Adaptive机制详解

    2024-07-12 13:34:03       21 阅读