• 5918阅读
  • 3回复

[提问]遇到一个link问题,请好心人帮忙 [复制链接]

上一主题 下一主题
离线林间走寸
 

只看楼主 倒序阅读 楼主  发表于: 2011-04-04
我的环境:XP , QCreater, D:\Qt\2010.04

刚接触qt,这几天放长假在家写东西玩,遇到个link错误怎么也不过

现在的情况:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\test.exe tmp/obj/debug_shared/main.o tmp/obj/debug_shared/mainwindow.o tmp/obj/debug_shared/qlabelad.o tmp/obj/debug_shared/moc_mainwindow.o tmp/obj/debug_shared/moc_qlabelad.o -L"d:\Qt\2010.04\qt\lib" -L"d:\Qt\2010.04\qt\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `D:/Qt/2010.04/qt/test-build-desktop'
mingw32-make: Leaving directory `D:/Qt/2010.04/qt/test-build-desktop'
tmp/obj/debug_shared/qlabelad.o: In function `QLabelAdPrivate':
D:\Qt\2010.04\qt\test-build-desktop/../test/qlabelad.cpp:59: undefined reference to `QFramePrivate::QFramePrivate()'

为什么会报 QFramePrivate::QFramePrivate()  这个构造函数找不到呢?


我的pro文件:

QT       += core gui
TARGET = Text2ImageTool
TEMPLATE = app
]第一次用Qt写东西,希望大家多帮忙,在线等

[ 此帖被林间走寸在2011-04-05 11:23重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2011-04-04
QStyleSheetStyle?没有这个类的吧?
LIBS += -lQtgui
这个用法不正确,你是想去除gui模块吗?应该写成
QT -= gui

QT默认是有core和gui模块的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线林间走寸

只看该作者 2楼 发表于: 2011-04-04
回 1楼(XChinux) 的帖子
文档里没有,但是源代码里的QLabel的实现是使用了这个类的,我写的控件基本是把QLabel的代码复制了一遍

我是想加载gui模块,从输出信息看gui模块应该已经加载了
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\Text2ImageTool.exe debug/main.o debug/mainwindow.o debug/qpreviewimage.o debug/qlabelAd.o debug/qeasylabel.o debug/moc_mainwindow.o debug/moc_qpreviewimage.o debug/moc_qlabelAd.o debug/qrc_application.o -L"d:\Qt\2010.04\qt\lib" -lmingw32 -lqtmaind -lQtgui4 -lQtGuid4 -lQtCored4
离线林间走寸

只看该作者 3楼 发表于: 2011-04-05
QStyleSheetStyle::styleSheetPalette 的原因我找到了,可能是我用的SDK发布的时候使用了
DEFINES += QT_NO_STYLE_STYLESHEET    这个宏定义,所以lib里没有这个符号,昨天粗心没有看到。

现在还剩下一个问题:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\test.exe tmp/obj/debug_shared/main.o tmp/obj/debug_shared/mainwindow.o tmp/obj/debug_shared/qlabelad.o tmp/obj/debug_shared/moc_mainwindow.o tmp/obj/debug_shared/moc_qlabelad.o -L"d:\Qt\2010.04\qt\lib" -L"d:\Qt\2010.04\qt\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `D:/Qt/2010.04/qt/test-build-desktop'
mingw32-make: Leaving directory `D:/Qt/2010.04/qt/test-build-desktop'
tmp/obj/debug_shared/qlabelad.o: In function `QLabelAdPrivate':
D:\Qt\2010.04\qt\test-build-desktop/../test/qlabelad.cpp:59: undefined reference to `QFramePrivate::QFramePrivate()'

为什么会报 QFramePrivate::QFramePrivate()  这个构造函数找不到呢?

qt源代码里有的:
QFramePrivate::QFramePrivate()
    : frect(QRect(0, 0, 0, 0)),
      frameStyle(QFrame::NoFrame | QFrame::Plain),
      lineWidth(1),
      midLineWidth(0),
      frameWidth(0),
      leftFrameWidth(0), rightFrameWidth(0),
      topFrameWidth(0), bottomFrameWidth(0)
{
}
快速回复
限100 字节
 
上一个 下一个