Makefile compile Error Debug

博客内容讲述了作者在编译项目时遇到的问题,原始Makefile导致了错误。通过添加CFLAGS=-c成功解决了这个问题。文章详细列出了修改后的Makefile配置,包括变量定义、编译选项和链接标志。
  • my work directory and original Makefile
    在这里插入图片描述
    在这里插入图片描述

  • After I run it, error will happen
    在这里插入图片描述
    I added the CFLAGS = -c, then it successed.
    在这里插入图片描述
    在这里插入图片描述

  • Attachment

DRMVERSION = 2.4.106
GCC = gcc
CFLAGS = -c

INCLUDEFLAGS = -I./libdrm-$(DRMVERSION)/include/drm
INCLUDEFLAGS += -I./libdrm-$(DRMVERSION)/tests/util

LINKFLAGS = -ldrm

SRC = $(wildcard ./libdrm-$(DRMVERSION)/tests/util/*.c)
SRC += fb.c

#VPATH = libdrm-$(DRMVERSION)/tests/util/
#SRC = fb.c format.c kms.c pattern.c 

OBJS = $(patsubst %.c, %.o, $(SRC))

fb: $(OBJS)
	$(CC) $(OBJS) -o $@ $(LINKFLAGS)

.c.o:
	$(GCC) $(CFLAGS) $(INCLUDEFLAGS) -o  $@ $< 

clean:
	rm -f fb $(OBJS)
  • vpath/VPATH 用于找源文件(编译所需要的依赖文件)
  • -I 是gcc编译选项,用于寻找.c文件中头文件

在这里插入图片描述

(wrf) haoge@DESKTOP-3UM43SH:~/WPS$ grep -i "error" log.compile # 查看 ungrib 相关的错误 grep -A5 -B5 "ungrib" log.compile | grep -i error # 查看 metgrid 相关的错误 grep -A5 -B5 "metgrid" log.compile | grep -i error wrf_io.f:(.text+0x46): undefined reference to `nf_strerror_' collect2: error: ld returned 1 exit status make[1]: [Makefile:13: geogrid.exe] Error 1 (ignored) collect2: error: ld returned 1 exit status make[1]: [Makefile:19: ungrib.exe] Error 1 (ignored) wrf_io.f:(.text+0x46): undefined reference to `nf_strerror_' collect2: error: ld returned 1 exit status make[1]: [Makefile:13: metgrid.exe] Error 1 (ignored) collect2: error: ld returned 1 exit status make[1]: [Makefile:41: g2print.exe] Error 1 (ignored) Fatal Error: Cannot read module file ‘module_debug.mod’ opened at (1), because it was created by a different version of GNU Fortran make[1]: [Makefile:81: int2nc.o] Error 1 (ignored) collect2: error: ld returned 1 exit status make[1]: [Makefile:76: int2nc.exe] Error 1 (ignored) collect2: error: ld returned 1 exit status make[1]: [Makefile:13: geogrid.exe] Error 1 (ignored) collect2: error: ld returned 1 exit status make[1]: [Makefile:19: ungrib.exe] Error 1 (ignored) collect2: error: ld returned 1 exit status make[1]: [Makefile:13: metgrid.exe] Error 1 (ignored) collect2: error: ld returned 1 exit status make[1]: [Makefile:41: g2print.exe] Error 1 (ignored) collect2: error: ld returned 1 exit status make[1]: [Makefile:13: metgrid.exe] Error 1 (ignored)
最新发布
09-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值