macos - Qt5 "symbol(s) not found for architecture x86_64"

标签 macos qt compiler-construction compilation qt5

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

我有一个带有此 pro 文件的 Qt 项目:

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

TARGET = QDownloaderCLI

CONFIG   += console
CONFIG   -= app_bundle


TEMPLATE ...

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

在网上搜索我发现了一些奇怪的东西,我有一个带有公共(public)槽的 .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]

我也试过“运行 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.

我在 Mac OS X 10.8.4 和 Qt 5.1.0 上

我的 .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

最佳答案

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

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

您是否测试过将 stateChanged 函数改为公开而不是插槽?

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

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

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

请提供编译输出。

问候/RK

关于macos - Qt5 "symbol(s) not found for architecture x86_64",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17700784/

相关文章:

c# - 使用 System.Windows.Forms 损坏的 Mono C# 代码

macos - Swift过滤函数导致编译错误

iphone - 泛化对 NSLog 的调用

python - 使用终端在 macOS 中旋转屏幕

qt - 创建一个没有按钮的 QMessageBox

javascript - Qt-Android 应用程序中的 QWebChannel

python - 安装 python 轮文件, '*.whl"结果为 "... is not a supported wheel on this platform"

c++ - 如何使用 QtConcurrent::run 调用以指针为参数的非类成员函数?

c - C 编译器如何发现 -lm 指向文件 libm.a?

c++ - 是否可以在 C++ 中声明 operator= private 并同时由编译器合成