更改代码不会更改二进制输出

时间:2019-12-26 12:47:40

标签: makefile

我有C语言的源代码,并且使用make构建可执行文件。这是一个命令行程序(仅用于终端I / O)。

  • 当我在源代码中引入语法错误时,会收到一条错误消息,因此我知道我正在处理的源文件确实是正在编译的文件。
  • 当我删除生成的二进制文件并再次调用make时,二进制文件又出现了,所以我知道我执行了正确的二进制文件。
  • 这就是难题:源代码中的任何其他更改都不会以任何方式影响可执行文件(到目前为止,我更改了各种printf输出)。

我从程序中得到的不变输出是来自较早开发状态的不变输出。生成文件如下。如果有人认为源代码很重要,我也可以证明这一点。

我从保存Makefile和源代码的目录执行make。我从其目录执行生成的二进制文件。

# Makefile for project "KlaVirtuell"

HOST        = $(shell hostname)

# configuration for all platforms
SRC     = .
CFLAGS      = -Wall -Wextra -g

# build PC binaries
ifeq ($(HOST),notebook-frank)
  vpath %.o ../../bin/lib_PC
  LIB       = ../../bin/lib_PC
  EXE       = ../../bin/exe_PC
else ifeq ($(HOST),Raspberry-Pi)
  vpath %.o ../../bin/lib_Raspi
  LIB       = ../../bin/lib_Raspi
  EXE       = ../../bin/exe_Raspi
else ifeq ($(TARGET),stm32)
endif

# Test: read soundfile, configure hardware, play sound
test-sound: $(SRC)/test-sound.c
    gcc -o $(EXE)/test-sound $(SRC)/test-sound.c $(CFLAGS) -lsndfile -lasound

0 个答案:

没有答案