Я использую Visual Studio 2012 для проекта Qt / C ++.
Я пытаюсь перейти на MinGW, чтобы я мог использовать C ++ 11 полностью вместо частичной поддержки, которую предлагает компилятор MSFT. Использование CMake для генерации проекта и его создания продвигалось очень хорошо, компилируя все подпроекты и сам основной проект.
Тем не менее, ссылки дают мне некоторые ошибки, и я не уверен, как их исправить:
Связывание CXX исполняемого файла Owl.exe
CMakeFiles \ Owl.dir / objects.a (BoardTreeView.cpp.obj). BoardTreeView.cpp 🙁 текст + 0x1e):
неопределенная ссылка на__imp__ZN9QTreeViewC2EP7QWidget'
_чертенок_ZN9QTreeViewD2Ev»
CMakeFiles\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x7b):
undefined reference to
CMakeFiles \ Owl.dir / objects.a (BoardTreeView.cpp.obj). BoardTreeView.cpp 🙁 текст + 0x116):
неопределенная ссылка на__imp__ZNK17QAbstractItemView5modelEv'
_чертенок_ZNK18QStandardItemModel9findItemsERK7QString6QFlagsIN2Qt9MatchFlagEEi»
CMakeFiles\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x1a1):
undefined reference to
CMakeFiles \ Owl.dir / objects.a (BoardTreeView.cpp.obj). BoardTreeView.cpp 🙁 текст + 0x303):
неопределенная ссылка на__imp__ZN8QVariantD1Ev'
_чертенок_ZeqRK7QStringS1_»
CMakeFiles\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x350):
undefined reference to
CMakeFiles \ Owl.dir / objects.a (BoardTreeView.cpp.obj). BoardTreeView.cpp 🙁 текст + 0x53e):
неопределенная ссылка на__imp__ZN8QVariantD1Ev'
_чертенок_ZNK9QTreeView10indexBelowERK11QModelIndex»
CMakeFiles\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x649):
undefined reference to
CMakeFiles \ Owl.dir / objects.a (BoardTreeView.cpp.obj). BoardTreeView.cpp 🙁 текст + 0x669):
неопределенная ссылка на__imp__ZNK17QAbstractItemView5modelEv'
_чертенок_ZN17QAbstractItemView15setCurrentIndexERK11QModelIndex»
CMakeFiles\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x6b1):
undefined reference to
CMakeFiles \ Owl.dir / objects.a (BoardTreeView.cpp.obj). BoardTreeView.cpp 🙁 текст + 0x6c1):
неопределенная ссылка на__imp__ZN8QVariantD1Ev'
_чертенок_ZN8QVariantD1Ev»
CMakeFiles\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x6d6):
undefined reference to
C: /progra~1/mingw-~1/x64-48~1.1-p/mingw64/bin /../ Библиотека / GCC / x86_64-W64-mingw32 / 4.8.1 /../../../ ../x86_64-w64-mingw32/bin/ld.exe:
CMakeFiles \ Owl.dir / objects.a (BoardTreeView.cpp.obj): неправильный адрес перемещения
0xf в разделе `.text $ _ZNSt9exceptionC2Ev [_ZNSt9exceptionC2Ev] ‘
collect2.exe: ошибка: ld вернул 1 состояние выхода
Deltas \ CMakeFiles \ Owl.dir \ build.make: 1217: рецепт для цели
«Deltas / Owl.exe» не удалось mingw32-make [2]: * [Deltas / Owl.exe] Ошибка 1
CMakeFiles \ Makefile2: 435: рецепт для цели
«Deltas / CMakeFiles / Owl.dir / all» не удалось mingw32-make [1]:
[Deltas / CMakeFiles / Owl.dir / all] Ошибка 2 Makefile: 115: рецепт для
целевой ‘all’ не выполнен mingw32-make: ** [все] Ошибка 2
Проект прекрасно компилируется и связывается с помощью Visual Studio (и XCode, FWIW), поэтому я не уверен, чего не хватает в компоновщике.
Кто-нибудь может предложить какие-либо предложения?
Вам нужно скачать Qt для MinGW (или собрать его самостоятельно, если вы используете версию MinGW, отличную от версии, с которой был собран выпуск Qt.) Версия Qt VS не может использоваться с MinGW.
Других решений пока нет …