首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成包'fromString‘不是'QKeySequence’的成员时发生Qt错误

生成包'fromString‘不是'QKeySequence’的成员时发生Qt错误
EN

Stack Overflow用户
提问于 2012-09-19 03:54:45
回答 1查看 335关注 0票数 1

我可以用QtSDK x86编译我的包( maliit ),在QtCreator中使用qmake就可以了。我现在正在尝试交叉编译ARM的pacakge。我的Qmake和Qt库是使用以下配置通过Buildroot构建的:

代码语言:javascript
复制
cd /home/user/project/output/buildroot/build/qt-4.8.1; PKG_CONFIG_SYSROOT_DIR="/home/user/project/output/buildroot/host/usr/arm-unknown-linux-gnueabi/sysroot" PKG_CONFIG="/home/user/project/output/buildroot/host/usr/bin/pkg-config" PKG_CONFIG_PATH="/home/user/project/output/buildroot/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib/pkgconfig:" MAKEFLAGS="w --  -j1" ./configure -silent -force-pkg-config -separate-debug-info -xplatform qws/linux-arm-gnueabi-g++- -opensource -confirm-license -largefile -no-qt3support -nomake examples -nomake demos -depths 16,32 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-qvfb -qt-gfx-vnc -no-gfx-multiscreen -no-gfx-directfb -no-mouse-pc -no-mouse-linuxtp -qt-mouse-linuxinput -qt-mouse-tslib -no-mouse-qvfb -no-kbd-tty -qt-kbd-linuxinput -no-kbd-qvfb -debug -shared -little-endian -embedded arm -no-gif -no-libmng -system-zlib -qt-libjpeg -qt-libpng -no-libtiff -qt-freetype -dbus -qdbus -no-openssl -no-sql-sqlite -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -svg -no-webkit -no-script -no-scripttools -no-javascript-jit -no-stl -no-declarative -glib -no-gfx-qnx -no-kbd-qnx -no-mouse-qnx -no-xinerama -no-cups -no-nis -no-accessibility -prefix /usr -plugindir /usr/lib/qt/plugins -hostprefix /home/user/project/output/buildroot/host/usr/arm-unknown-linux-gnueabi/sysroot/usr -fast -no-rpath

当我尝试在QtCreator中交叉编译这个包时,它大约编译了一半,然后在以下函数的Q_EMIT行出现错误:

代码语言:javascript
复制
void GlibDBusIMServerProxy::onInvokeAction(const QString &action,
                                           const QString &sequence)
{
    Q_EMIT invokeAction(action, QKeySequence::fromString(sequence));
}

该文件肯定包含头文件:

代码语言:javascript
复制
#include <QKeySequence>

下面是整个构建错误:

代码语言:javascript
复制
glibdbusimserverproxy.cpp: In member function 'void GlibDBusIMServerProxy::onInvokeAction(const QString&, const QString&)':
glibdbusimserverproxy.cpp:230:33: error: 'fromString' is not a member of 'QKeySequence'
make[1]: Leaving directory `/home/user/Desktop/maliit-framework/connection'
make[1]: *** [.obj/glibdbusimserverproxy.o] Error 1
make: Leaving directory `/home/user/Desktop/maliit-framework'
make: *** [sub-connection-make_default-ordered] Error 2
12:51:08: The process "/usr/bin/make" exited with code 2.
Error while building project maliit-framework (target: Desktop)
When executing build step 'Make'

我可以在IDE中跟踪标题,在Public下面有正确的定义:

代码语言:javascript
复制
static QKeySequence fromString(const QString &str, SequenceFormat format = PortableText);

会出什么问题呢?我已经在相当多的其他项目中使用了交叉编译库,它在这些项目中工作得很好。它怎么会找不到'fromString‘静态方法呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-19 09:18:40

Qt configure命令的一个选项是定义QT_NO_SHORTCUT宏,该宏用空类替换QKeySequence类的常规定义。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12484041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档