Ошибка компилятора «collect2: Ld вернул 1 статус выхода» с использованием классов с QObject (QT 4.7 с Qt Creator)
Вопрос
В моем текущем проекте возникла следующая ситуация: «collect2: Id вернул 1 статус выхода», возвращенный компилятором с использованием следующего кода:
родовое словоКомпилятор говорит следующее:
<цитата> ...
mingw32-make: Вход в каталог C:/Entwicklung SVN/debug test/dataSenderReceiverExample'
C:/Qt/2010.04/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory
C: / Entwicklung SVN / debug test / dataSenderReceiverExample '
g ++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I "...... \ Qt \ 2010.04 \ qt \ include \ QtCore" .... .. \ Qt \ 2010.04 \ qt \ include "-I" .. \ dataSenderReceiver "-I" ...... \ Qt \ 2010.04 \ qt \ include \ ActiveQt "-I" debug "-I" ... ... \ Qt \ 2010.04 \ qt \ mkspecs \ win32-g ++ "-o debug \ main.o main.cpp
main.cpp: В функции int main (int, char **):
main.cpp: 14: предупреждение: неиспользуемая переменная 'производная'
g ++ -enable-stdcall-fixup -Wl, -enable-auto-import -Wl, -enable-runtime-pseudo-reloc -Wl, -subsystem, console -mthreads -Wl -o debug \ dataSenderReceiverExample.exe debug / main.o -L "c: \ Qt \ 2010.04 \ qt \ lib" -L ../ dataSenderReceiver / debug -ldataSenderReceiver -lQtCored4
mingw32-make [1]: Выход из каталога C:/Entwicklung SVN/debug test/dataSenderReceiverExample'
mingw32-make: Leaving directory
C: / Entwicklung SVN / debug test / dataSenderReceiverExample '
../dataSenderReceiver/debug/libdataSenderReceiver.a(dehibited.o):C:\Entwicklung SVN \ debug test \ dataSenderReceiver / Derived.cpp: 14: undefined ссылка на Derived_02::Derived_02()'
../dataSenderReceiver/debug/libdataSenderReceiver.a(derived.o):C:\Entwicklung SVN\debug test\dataSenderReceiver/derived.cpp:15: undefined reference to
Derived_02 :: method () '
collect2: ld вернул 1 статус выхода
mingw32-make [1]: * [debug \ dataSenderReceiverExample.exe] Ошибка 1
mingw32-make: * [отладка] Ошибка 2
Prozess "C: /Qt/2010.04/mingw/bin/mingw32-make.exe" был обнаружен с дем Rückgabewert% 2.
Fehler beim Erstellen des Projekts dataSenderReceiverExample (Ziel: Desktop)
Beim Ausführen des Build-Schritts 'Make'
Пожалуйста, помогите!
Решение
должно быть:
родовое словоЗатем он компилируется!
Другие советы
У меня возникла эта проблема в следующей ситуации:
Скажи
A - исполняемый (например, консольный) проект и B и C - это проекты библиотеки (например, статическая библиотека), а A использует B, а B использует C.
Тогда
A должен знать библиотеку B и библиотеку C через файл .pro и B должен знать библиотеку C через файл .pro.
Скажи
в файле A .pro библиотека C обозначается перед библиотекой B:
родовое словоТогда
Именно ошибка описана выше.
Решение:
Назовите библиотеку B перед библиотекой C в файле A .pro:
родовое слово