【问题标题】:Compiling QT in windows 64 - undefined reference to在 Windows 64 中编译 QT - 未定义的引用
【发布时间】:2012-06-12 03:00:46
【问题描述】:

好的。我刚刚使用在线安装程序从:http://qt.nokia.com/downloads 安装了 Qt。我安装了 MinGW、make、gcc 和 g++。我还添加了变量QMAKESPECQTDIR,并将MinGW 和Qt 中的目录附加到PATH 变量中。在运行 qmake 和 make 时,我收到大量关于未定义引用 QGraphicsSceneQGraphicsView 等的错误。

这是其中之一:

./debug/mox_roiwindow.o:moc_roiwindow.cpp:(.rdata$_ZTV9roiwindow[vtavle for roiwindow]+0x74): undefined reference to 'QGRaphcisScene::drawForeground(QPainter*, QRectF const&)'

makefile 中的 LIBS 部分是:

LIBS = -L'c:/QtSDK/Desktop/Qt/4.8.0/msvc2008/lib' -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4

包含部分是:

INCPATH = -I'../../../../QtSDK/Desktop/Qt/4.8.0/msvc2008/include/QtCore' -I'../../../../QtSDK/Desktop/Qt/4.8.0/msvc2008/include/QtGui'

这似乎是正确的。我试图通过谷歌查找解决方案,要么一无所获,要么解决方案似乎没有帮助。谢谢。

【问题讨论】:

  • QGRaphcisScene 是您的代码中的拼写错误吗?
  • 没有。代码在linux中编译得很好。试图让它在 Windows 中工作。
  • "QGRaphcisScene" - 里面有两个错别字。您是手动复制错误消息,还是在实际输出中? (上面的“vtavle”假设你是手工复制的)
  • 这是关于构建 Qt 本身,还是针对该 Qt 构建您自己的项目?如果是后者,请添加您的 .pro 文件。
  • @Frank - 我手工复制的。应该更加小心。我使用的代码在 ubuntu 中编译得很好,当我在 qt creator 中构建它时(通过复制头文件和源文件)。我刚刚从上面的链接安装了 qt。我正在尝试在 Windows 中使用 qt 在 linux 中构建一个项目。 .pro 文件是使用 qmake 制作的,但我还是会发布它。

标签: c++ qt windows-7-x64 qmake undefined-reference


【解决方案1】:

有些奇怪....您正在尝试链接mingw32,同时您正在使用msvc2008 库路径。它们是独立且不兼容的编译器环境,因此如果您尝试链接从两者编译的对象,您可能会遇到此错误。你用的是什么编译器??你在使用 QtCreator 吗?编译器必须与用于编译 Qt 库的编译器相同...

【讨论】:

  • 尼奥贝。我刚刚使用我提供的链接安装了 qt,所以我没有自己构建它。我将重新安装它并尝试使用 mingw 构建它。我认为这可能是正确的思路。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多