Qt Application не работает впечатляюще - PullRequest
6 голосов
/ 14 октября 2008

Я пытаюсь связать приложение Qt с его библиотеками, а компоновщик (MinGW) извергает сотни строк, как показано ниже, и я не уверен, как поступить.

 cpp: undefined reference to `_Unwind_SjLj_Register'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x29d):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Unregister'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x38c):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Resume'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x4ce):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Register'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x53e):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Unregister'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x635):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Resume'

Ответы [ 3 ]

6 голосов
/ 14 октября 2008

Я не знаю ... но мне кажется, что извергать что-то о Unwind говорит о том, что у вас есть несоответствие между тем, скомпилирована ли библиотека с исключениями, а ваше приложение скомпилировано с исключениями.

Если вы хотите исключения, убедитесь, что вы их включили, добавив следующую строку в ваш файл qmake:

CONFIG += exceptions

или, если вы не хотите исключений, используйте противоположное

CONFIG -= exceptions

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

1 голос
/ 14 октября 2008

Прошло много времени с тех пор, как я занимался разработкой Qt, но я помню только пару случаев, извергающих огромное количество подобных сообщений.

  • Включаемые файлы для Qt были другая версия, чем общая библиотеки ... это случилось, когда я модернизирован и по какой-то причине вы пришлось вручную обновить включить файлы.
  • Библиотеки Qt вообще отсутствовали ... Я смутно помню, как работал компилятор, но компоновщик не работал при первом запуске.

Я занимался разработкой Qt для процессора ARM, поэтому при кросс-компиляции у меня были дополнительные странности.

0 голосов
/ 16 августа 2012

2 возможных причины, о которых я знаю:

  1. если вы попытаетесь связать библиотеки gcc4 с помощью компоновщика gcc3.
  2. Вам нужен флаг -lstdc++ до конца команды компиляции
...