我目前正在尝试构建和运行QtQuick 2应用程序,但是出现重复的符号错误:
ld: 55 duplicate symbols for architecture i386,这是一些重复项:

duplicate symbol __ZTS16QActionAnimation in:
/Users/momo/Qt5.2.1/5.2.1/ios/lib/libQt5Quick_iphonesimulator_debug.a(qquickanimation.o)    /Users/momo/Qt5.2.1/5.2.1/ios/lib/libQt5Declarative_iphonesimulator_debug.a(moc_qdeclarativeanimation_p_p.o)

duplicate symbol __Z30_q_interpolateShortestRotationRdS_d in:
/Users/momo/Qt5.2.1/5.2.1/ios/lib/libQt5Declarative_iphonesimulator_debug.a(qdeclarativeanimation.o)
/Users/momo/Qt5.2.1/5.2.1/ios/lib/libQt5Quick_iphonesimulator_debug.a(qquickanimation.o)

duplicate symbol __Z31_q_interpolateClockwiseRotationRdS_d in:
/Users/momo/Qt5.2.1/5.2.1/ios/lib/libQt5Declarative_iphonesimulator_debug.a(qdeclarativeanimation.o)
/Users/momo/Qt5.2.1/5.2.1/ios/lib/libQt5Quick_iphonesimulator_debug.a(qquickanimation.o)

duplicate symbol __Z38_q_interpolateCounterclockwiseRotationRdS_d in: /Users/momo/Qt5.2.1/5.2.1/ios/lib/libQt5Declarative_iphonesimulator_debug.a(qdeclarativeanimation.o)   /Users/momo/Qt5.2.1/5.2.1/ios/lib/libQt5Quick_iphonesimulator_debug.a(qquickanimation.o)

以下是项目文件的不同包含:
main.cpp :
#include <QtGui/QGuiApplication>
#include <QQmlContext>
#include <QScreen>
#include <QRect>
#include "qtquick2applicationviewer.h"
#include "dataobject.h"

int main(int argc, char *argv[])
{
    ...
}
dataobject.cpp :
#include "dataobject.h"

 DataObject::DataObject(QObject *parent)
     : QObject(parent)
 {
 }

 ...
dataobject.h :
#ifndef DATAOBJECT_H
#define DATAOBJECT_H

#include <QObject>

class DataObject : public QObject
{
    ...
};

 #endif // DATAOBJECT_H

我发现很奇怪的是,有很多重复的符号,但是我的文件中没有......仅在使用iOS而不是台式机(mac或Windows)或Android上运行时才发生。

xcode项目中是否有需要更改的内容?

提前致谢

最佳答案

我建议按照以下步骤找出重复项是否有问题

  • 首先通过打开Build Phases->Compile Sources检查项目,然后
    看看您的 class 是否有重复。
  • 如果这样不起作用,请尝试删除您的派生数据,然后清理您的
    XCode上的产品。
  • 否则,删除所有编译源并将所有.m文件再次添加到您的项目中

  • 希望这会有所帮助!

    关于ios - 编译QtQuick2应用程序时符号重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23216381/

    10-11 15:41
    查看更多