Вопросы

нечетная ошибка компоновщика при создании программы: «множественное определение `fnames’; src/main.o:(.data.rel.local+0x0): сначала определено здесь’

Итак, я программирую программу, которая настолько разрослась, что я решил создать много файлов для этого проекта (как я делал раньше). После создания 2 файлов и добавления в них соответствующих функций, это ошибки, которые я получаю при создании.

/bin/ld: src/util.o:(.data.rel.local+0x0): multiple definition of `fnames'; src/main.o:(.data.rel.local+0x0): first defined here
/bin/ld: src/util.o:(.data+0x0): multiple definition of `gBoard'; src/main.o:(.data+0x0): first defined here
/bin/ld: src/possiblemoves.o:(.data.rel.local+0x0): multiple definition of `fnames'; src/main.o:(.data.rel.local+0x0): first defined here
/bin/ld: src/possiblemoves.o:(.data+0x0): multiple definition of `gBoard'; src/main.o:(.data+0x0): first defined here
collect2: error: ld returned 1 exit status
make: *** [Makefile:22: vgcp] Error 1

Вот мой Makefile:

IDIR=/usr/include/SDL2
CC=gcc
CFLAGS=-I$(IDIR)

ODIR=src

LIBS=-lSDL2 -lSDL2_image

_DEPS = main.h
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))

_OBJ = main.o util.o possiblemoves.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))

all: vgcp clean


$(ODIR)/%.o: %.c $(DEPS)
    $(CC) -c -o [email protected] $< $(CFLAGS)

vgcp: $(OBJ)
    $(CC) -o [email protected] $^ $(CFLAGS) $(LIBS)

.PHONY: clean

clean:
    rm -f $(ODIR)/*.o

С Makefile проблем нет, было бы лучше, если бы вы вместо этого разместили код (по крайней мере, соответствующие фрагменты), чтобы можно было получить более конкретные ответы.   —  person Victor Ocampo    schedule 18.06.2020

Читать:
WPF добавляет новую строку в заполненную таблицу данных из БД

Похожие записи

Python – создайте текстовую границу с динамическим размером

admin

Как вы вызываете несколько файлов из командной строки в свое приложение?

admin

Изменение столбцов для получения уникальных значений, транспонирование другого столбца и добавление процента этих уникальных значений.

admin

Как записывать сообщения в концентратор событий Azure из службы управления API Azure

admin

Преобразование стохастического градиентного спуска в мини-пакетный градиентный спуск

admin

MongoDb автоматически обновляет данные через указанное количество раз

admin