我正在开发一个由多个 c 和 c++ 代码文件组成的项目。我没有编写代码,我只是重新格式化它的结构。我正在使用 Visual Studio 代码来编辑我的代码。
当我发出“make”命令时,我收到一个警告说有几个变量没有使用。查看我的代码后,我意识到这是由于“ifdef”语句的标识符未在任何代码中定义。我问过我的主管,他说我必须在我的 makefile 中提供这个标识符作为 CFLAG。
我做了一些研究,但仍然对这个过程感到困惑。在查看了相关的 stackoverflow 问题后,我认为我有一个解决方案。
我去了 VSCode 终端并输入“make CFLAGS=-Dvar=DATAVIS”,因为 DATAVIS 是相关标识符的名称。但是,我仍然知道变量没有被使用。我不知道下一步该尝试什么。
编辑:
这是我的makefile代码:(有解决方案)
CC=g++
RM= /bin/rm -vf
EDCFLAGS:=$(CFLAGS)
EDLDFLAGS:=$(LDFLAGS)
EDCFLAGS:= -Wall -fno-strict-aliasing -std=gnu11 -O2 $(EDCFLAGS)
EDLDFLAGS:= -lm -lpthread $(EDLDFLAGS)
TARGETOBJS= src/main.o src/datavis.o src/camera.o src/housekeeping.o
TARGET = ATIKCAM-REWRITE-1.out
all: build/$(TARGET)
build:
mkdir build
build/$(TARGET): $(TARGETOBJS) build
$(CC) $(TARGETOBJS) $(LINKOPTIONS) -o $@ \
$(EDLDFLAGS)
%.o: %.c
$(CC) $(EDCFLAGS) -Iinclude/ -o $@ -c $<
clean:
$(RM) build/$(TARGET)
$(RM) $(TARGETOBJS)