qDebug和SDL之间的冲突

时间:2013-10-02 12:38:40

标签: qt sdl qtcore

我在Mac OS 10.8.5和Qt 5.1.1上工作,除其他外,qdebug类适用于某些项目,不能与其他项目一起编译。我已经尝试重新安装没有改变的Qt。

肯定是因为使用了SDL库(?!),但它过去工作正常。这是编译输出的一部分:

In file included from ../../Stage/Joker/tests/SDLTest/main.cpp:7:
In file included from /Applications/QT/5.1.1/clang_64/include/QtCore/QDebug:1:
In file included from /Applications/QT/5.1.1/clang_64/include/QtCore/qdebug.h:46:
In file included from /Library/Frameworks/QtCore.framework/Headers/qhash.h:46:
/Library/Frameworks/QtCore.framework/Headers/qchar.h:76:5: error: unknown type name 'QT_ASCII_CAST_WARN_CONSTRUCTOR'
    QT_ASCII_CAST_WARN_CONSTRUCTOR QChar(char c);
    ^

如果需要,我可以提供更多输出或不工作的Qt类。

我用Qt =>构建我的代码Build =>跑 不幸的是,我无法在其他计算机上重现代码。

这是专业档案(除了我之外,我的所有同事都能很好地工作):

TEMPLATE = app

SOURCES += main.cpp
OBJECTIVE_HEADERS += ../../libs/PhGraphic/SDLMain.h
OBJECTIVE_SOURCES += ../../libs/PhGraphic/SDLMain.m
LIBS += -framework Cocoa
QMAKE_CXXFLAGS += -F/Library/Frameworks
QMAKE_OBJECTIVE_CFLAGS += -F/Library/Frameworks
LIBS += -F/Library/Frameworks

LIBS += -framework SDL -framework SDL_image -framework SDL_ttf

2 个答案:

答案 0 :(得分:3)

我在安装软件后曾遇到过这个问题:它在 / Library / Framework 文件夹中创建了一个 QtCore.framework ,它覆盖了你的QtCore当前的Qt套件(由于QMAKE_CXXFLAGS + = -F / Library / Frameworks)。

答案 1 :(得分:1)

  1. 它是qDebug,并且有两个重载:

    • 流返回功能

      qDebug() << "foo";
      
    • 一个printf风格的函数

      qDebug("foo");
      
  2. 您需要提供最低限度的可重复测试用例,以便我们为您提供帮助。

  3. 您是如何构建代码的?你使用qmake生成Makefile吗?我们需要至少看到.pro文件,通过删除无用的样板注释等来最小化它。