简体   繁体   English

使用MinGW的Windows上的Qt5项目

[英]Qt5 Project on Windows with MinGW

I have been using Visual Studio 2012 for a Qt/C++ project. 我一直在使用Visual Studio 2012进行Qt / C ++项目。

I am trying to migrate over to MinGW so that I can use C++11 entirely instead of the partial support that MSFT's compiler offers. 我正在尝试迁移到MinGW,以便我可以完全使用C ++ 11而不是MSFT编译器提供的部分支持。 Using CMake to generate the project and making was proceeding very well, compiling all the subprojects and the main project itself. 使用CMake生成项目并使得进展非常顺利,编译所有子项目和主项目本身。

However, the linking is giving me some errors and I'm not sure how to resolve them: 但是,链接给了我一些错误,我不知道如何解决它们:

Linking CXX executable Owl.exe CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x1e): undefined reference to __imp__ZN9QTreeViewC2EP7QWidget' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x7b): undefined reference to _ imp _ZN9QTreeViewD2Ev' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x116): undefined reference to __imp__ZNK17QAbstractItemView5modelEv' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x1a1): undefined reference to _ imp _ZNK18QStandardItemModel9findItemsERK7QString6QFlagsIN2Qt9MatchFlagEEi' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x303): undefined reference to __imp__ZN8QVariantD1Ev' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x350): undefined reference to _ imp _ZeqRK7QStringS1_' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x53e): undefined refe 链接CXX可执行文件Owl.exe CMakeFiles \\ Owl.dir / objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp :(。text + 0x1e):未定义引用__imp__ZN9QTreeViewC2EP7QWidget' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x7b): undefined reference to _ imp _ZN9QTreeViewD2Ev'CMakeFiles \\ Owl.dir / objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp :(。text + 0x116 ):未定义引用__imp__ZNK17QAbstractItemView5modelEv' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x1a1): undefined reference to _ imp _ZNK18QStandardItemModel9findItemsERK7QString6QFlagsIN2Qt9MatchFlagEEi'CMakeFiles \\ Owl.dir / objects。 a(BoardTreeView.cpp.obj):BoardTreeView.cpp :(。text + 0x303):未定义引用__imp__ZN8QVariantD1Ev' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x350): undefined reference to _ imp _ZeqRK7QStringS1_'CMakeFiles \\ Owl.dir / objects.a(BoardTreeView.cpp.obj)的__imp__ZN8QVariantD1Ev' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x350): undefined reference to :BoardTreeView.cpp :(。text + 0x53e):undefined refe rence to __imp__ZN8QVariantD1Ev' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x649): undefined reference to _ imp _ZNK9QTreeView10indexBelowERK11QModelIndex' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x669): undefined reference to __imp__ZNK17QAbstractItemView5modelEv' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x6b1): undefined reference to _ imp _ZN17QAbstractItemView15setCurrentIndexERK11QModelIndex' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x6c1): undefined reference to __imp__ZN8QVariantD1Ev' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x6d6): undefined reference to _ imp _ZN8QVariantD1Ev' c:/progra~1/mingw-~1/x64-48~1.1-p/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj): bad reloc address 0xf in section `.text$_ZNSt9exc __imp__ZN8QVariantD1Ev' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x649): undefined reference to _ imp _ZNK9QTreeView10indexBelowERK11QModelIndex'CMakeFiles \\ Owl.dir / objects.a(BoardTreeView) .cpp.obj):BoardTreeView.cpp :(。text + 0x669):未定义引用__imp__ZNK17QAbstractItemView5modelEv' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x6b1): undefined reference to _ imp _ZN17QAbstractItemView15setCurrentIndexERK11QModelIndex'CMakeFiles \\ Owl.dir / objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp :(。text + 0x6c1):未定义引用__imp__ZN8QVariantD1Ev' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x6d6): undefined reference to _ imp _ZN8QVariantD1Ev'c的__imp__ZN8QVariantD1Ev' CMakeFiles\\Owl.dir/objects.a(BoardTreeView.cpp.obj):BoardTreeView.cpp:(.text+0x6d6): undefined reference to :/progra~1/mingw-~1/x64-48~1.1-p/mingw64/bin/。 ./lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe:CMakeFiles \\ Owl.dir / objects.a( BoardTreeView.cpp.obj):在`.text $ _ZNSt9exc节中错误的reloc地址0xf eptionC2Ev[_ZNSt9exceptionC2Ev]' collect2.exe: error: ld returned 1 exit status Deltas\\CMakeFiles\\Owl.dir\\build.make:1217: recipe for target 'Deltas/Owl.exe' failed mingw32-make[2]: * [Deltas/Owl.exe] Error 1 CMakeFiles\\Makefile2:435: recipe for target 'Deltas/CMakeFiles/Owl.dir/all' failed mingw32-make[1]: eptionC2Ev [_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] Error 2 Makefile:115: recipe for target 'all' failed mingw32-make: * * [all] Error 2 [Deltas / CMakeFiles / Owl.dir / all]错误2 Makefile:115:目标'all'失败的配方mingw32-make:* * [all]错误2

The project compiles and links just fine using Visual Studio (and Xcode, FWIW), so I'm not sure what the linker is missing. 该项目使用Visual Studio(和Xcode,FWIW)进行编译和链接,所以我不确定链接器缺少什么。

Can anyone offer any suggestions? 有人可以提供任何建议吗?

你需要为MinGW下载Qt(或者你自己构建它,如果你使用的是不同版本的MinGW而不是Qt版本的版本。)Qt的VS版本不能与MinGW一起使用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM