/tmp/ccTQFVCP.o: In function `whiteSpace':
/home/tommo/fly/flyc/config.c:12: multiple definition of `whiteSpace'
/tmp/cc0ccMfz.o:/home/tommo/fly/flyc/config.c:12: first defined here
/tmp/ccTQFVCP.o: In function `lineEnd':
/home/tommo/fly/flyc/config.c:16: multiple definition of `lineEnd'
/tmp/cc0ccMfz.o:/home/tommo/fly/flyc/config.c:16: first defined here
/tmp/ccTQFVCP.o: In function `makeSubStr':
/home/tommo/fly/flyc/config.c:20: multiple definition of `makeSubStr'
/tmp/cc0ccMfz.o:/home/tommo/fly/flyc/config.c:20: first defined here
我的文件config.c中的每个函数都有这个。
我的每个头文件都有一个#ifndef FILE_H标头块。
为什么要这样做?
TARGET = fly
SRC = main.c gfx.c transform.c entity.c list.c v3.c config.c airplane.c
CPPFLAGS = -Wall
LDFLAGS = -lglfw -lGL -lGLU
DEBUG = -g
linux:
@echo Building for Linux...
gcc $(CPPFLAGS) $(DEBUG) $(LDFLAGS) $(SRC) -o $(TARGET)
@echo All done.
clean:
rm $(TARGET)
help:
@echo "Available targets for fly"
@echo " linux: build for linux (default)"
@echo " clean: clean up directory"
.PHONY: help clean
那是我的Makefile。 来自https://github.com/tm1rbrt/fly的git pull如果您想尝试自己构建
答案 0 :(得分:6)
问题是:main.c includes config.c。因此,您可以在config.c中获取两次所有内容。 C文件互相包含是非常规的,所以我建议删除include。
答案 1 :(得分:0)
我遇到了类似的问题,将main.cpp中的application.cpp文件包含到了application.hpp中后,我解决了这个问题。