Qt5“符号未找到架构x86_64”

时间:2013-07-17 13:13:56

标签: macos qt compiler-construction compilation qt5

首先,我知道还有其他帖子在谈论这个错误,但我认为我的情况有点不同。

我在这个专业档案中有一个Qt项目:

QT       += core
QT       += network
QT       -= gui

TARGET = QDownloaderCLI

CONFIG   += console
CONFIG   -= app_bundle


TEMPLATE ...

我尝试使用CONFIG -= X86_64,但没有任何改变。

在网上搜索我发现了一些奇怪的东西,我有一个带有公共插槽的.h文件,其实现在.cpp文件中:

public slots:
    void stateChanged(int state);

有了这个,我收到了错误消息,但如果我在.h和.cpp中评论void stateChanged(int state);,它就可以了。

我该如何解决这个问题?

我也有警告:

directory not found for option '-F/Applications/Qt//5.1.0/clang_64/qtbase/lib'

"This version of OS X is unsupported" [-W#warnings]

我也试过“Run qMake”,但我也收到了警告:

No .qmake.cache is present. This significantly slows down qmake with this makespec.
Call 'cache()' in the top-level project file to rectify this problem.

我使用的是Qt 5.1.0的Mac OS X 10.8.4

我的.h档案代码:

#ifndef DOWNLOADER_H
#define DOWNLOADER_H

#include <QObject>
#include <QDebug>
#include <QFile>
// In Qt 5 no more QHttp
#include <QNetworkAccessManager>

class downloader : public QObject
{
    Q_OBJECT
public:
    explicit downloader(QObject *parent = 0);
    void doDownload();

signals:

public slots:
    void stateChanged(int state);

private:
   QNetworkAccessManager *http;

};

#endif // DOWNLOADER_H

3 个答案:

答案 0 :(得分:2)

您需要提供编译输出,以便我们可以帮助您,现在您只向我们提供了问题输出中的警告。

当我在OSX上出现引用错误时,我通常会收到此错误。 即当我在我的.h文件中声明了一个函数然后没有声明它时。

您是否测试过将stateChanged函数移动为公共而不是插槽?

当您尝试通过右键单击.cpp文件中的函数来关注该函数并在光标下选择跟随符号时会发生什么。

如果.cpp和.h文件之间的连接错误,那么您将收到错误。 您也可以尝试在.h文件中声明该函数来测试它。

您收到的警告是您经常收到的警告,它不应该使应用程序无法运行。我每次运行应用程序都会得到它。

请提供编译输出。

问候/ RK

答案 1 :(得分:0)

这条不合理的道路是对的吗?在我的Makefile中,我有:

LIBS          = $(SUBLIBS) -F/Users/enrico/Qt5.0.1/5.0.1/clang_64/lib -framework QtWidgets -F/Users/enrico/Qt5.0.1/5.0.1/clang_64/qtbase/lib -framework QtGui -framework QtCore -framework OpenGL -framework AGL 

void stateChanged(int state);的错误消息是什么?

答案 2 :(得分:0)

在链接阶段之前,您的.h文件应编译为* .moc。如果你找不到的符号是 stateChanged ,那就是你失去的一步。当您进入链接阶段时,没有找到QObject插槽作为符号,并且您的链接器停止处理。

或者它可能缺少一些QT keyworks / macro来正确声明为QObject。

查看Qt5 help for moc

中的详细信息