LINUX.ORG.RU

QT & MAKE


0

0

Прога на QT.
Модули:
main.cpp
data.cpp

home mycomp # make
...
.obj/moc_first_f.o   -L/usr/qt/3/lib -L/usr/X11R6/lib -lqt -lXext -lX11 -lm
.obj/data.o(.data+0x0): multiple definition of `n'
.obj/main.o(.data+0x0): first defined here
.obj/data.o(.text+0x0): In function `ITEM::mount()':
: multiple definition of `ITEM::mount()'
.obj/main.o(.text+0x0): first defined here
.obj/data.o(.text+0xd0): In function `ITEM::umount()':
: multiple definition of `ITEM::umount()'
.obj/main.o(.text+0xd0): first defined here
.obj/data.o(.text+0x1a0): In function `load(MINE*)':
: multiple definition of `load(MINE*)'
.obj/main.o(.text+0x1a0): first defined here
collect2: ld returned 1 exit status
make: *** [were-iso] Error 1

Вот файл data.cpp:

#ifndef DATA_CPP
#define DATA_CPP
...
#endif

С ним все впорядке - проверял.
qmake -project
qmake
make

И вот это.
Я думаю что qmake делает левые make-файлы.
Как вы с этим справляетесь. Я уже в который раз с этим сталкиваюсь!

Может надо что-нибудь закомментировать(в MAKEFILE)?

А вообще неплохо бы самому писать make-файлы. Есть какие-нибудь русские ресурсы по этому делу
anonymous

QMAKE делает нормальные makefile.

Просто код у тебя левый.

Обрати внимание:

multiple definition of `n'

Неужели qmake виноват, что у тебя n объявлен дважды.

Код покажи.

olegk ★★
()

мэйкфайлы - это info automake.

CKulT
()

Я ж тебе уже писал: не включай #include'ом data.cpp в main.cpp. Таким образом включаются только _объявления_, а не определения символов. То есть *.h, а не *.cpp.

nobody ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.