множественное определение <function> - PullRequest
1 голос
/ 21 декабря 2010
/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. Git Pull от https://github.com/tm1rbrt/fly Если вы хотите попробовать построить себя

1 Ответ

6 голосов
/ 21 декабря 2010

Проблема заключается в следующем: main.c включает config.c . Как следствие, вы получаете все в config.c дважды. Нет ничего необычного в том, что файлы C включают друг друга, поэтому я рекомендую отказаться от включения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...