Ошибка компилятора «collect2: Ld вернул 1 статус выхода» с использованием классов с QObject (QT 4.7 с Qt Creator)

StackOverflow https://stackoverflow.com/questions/4901050

Вопрос

В моем текущем проекте возникла следующая ситуация: «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 directoryC: / 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 directoryC: / 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 toDerived_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:

родовое слово
родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top