Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Qt5“;未找到架构x86“U 64”的符号;_Macos_Qt_Compiler Construction_Compilation_Qt5 - Fatal编程技术网

Macos Qt5“;未找到架构x86“U 64”的符号;

Macos Qt5“;未找到架构x86“U 64”的符号;,macos,qt,compiler-construction,compilation,qt5,Macos,Qt,Compiler Construction,Compilation,Qt5,首先,我知道也有其他帖子讨论这个bug,但我认为我的有点不同 我有一个带有此pro文件的Qt项目: QT += core QT += network QT -= gui TARGET = QDownloaderCLI CONFIG += console CONFIG -= app_bundle TEMPLATE ... 我尝试了CONFIG-=X86_64,但没有任何变化 在网上搜索时,我发现了一些奇怪的东西,我有一个带有公共槽的.h文件,他

首先,我知道也有其他帖子讨论这个bug,但我认为我的有点不同

我有一个带有此pro文件的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);
有了这个,我得到了错误消息,但是如果我注释
void stateChanged(int state)在.h和.cpp中它可以工作

我该如何解决这个问题

我也有警告:

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

我还尝试了“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.
我使用的是Mac OS X 10.8.4和Qt5.1.0

my.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
\ifndef下载程序\u H
#定义下载程序
#包括
#包括
#包括
//在Qt5中,不再使用QHttp
#包括
类下载器:公共QObject
{
Q_对象
公众:
显式下载程序(QObject*parent=0);
void doDownload();
信号:
公众时段:
无效状态已更改(int状态);
私人:
QNetworkAccessManager*http;
};
#endif//DOWNLOADER_H

未找到的路径正确吗?在我的
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)的错误消息是什么

在链接阶段之前,您的.h文件应编译为*.moc。如果未找到的符号已状态更改,则缺少该步骤。进入链接阶段时,找不到作为符号的QObject插槽,链接器停止处理

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


请查看

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

当我在OSX上有一个引用错误时,我通常会得到这个错误。 也就是说,我在.h文件中声明了一个函数,但没有声明它

您是否测试过将stateChanged函数移动为public而不是slot

右键单击.cpp文件中的函数并选择光标下的“跟随符号”,尝试跟随该函数时会发生什么情况

如果.cpp和.h文件之间的连接错误,您将在那里得到一个错误。 您还可以尝试在.h文件中声明函数来测试它

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

请提供编译输出


关于/RK

您是否在stateChanged函数中使用了任何第三方库?这个问题似乎与主题无关,因为它只涉及一个简单的语法error@AndrewBarber问题不在于语法错误。让链接/编译标志对于OS X上的Qt项目来说是正确的并不是件小事。这是我在尝试在OS X上构建复杂Qt项目时搜索此特定错误时发现的第一个结果以下是错误消息:
警告:未找到选项-F/Applications/Qt//5.1.0/clang_64/qtbase/lib的目录未找到架构x86_64的错误符号
是否没有其他链接器输出?请在
编译输出
中发布您的内容。您是否尝试过使用
CONFIG+=x86\u 64
CONFIG-=i386
?我已经在我的第一条评论中发布了编译输出,并且使用CONFIG-=i386的CONFIG+=x86\u 64没有任何更改您是否尝试过重命名您的函数(将其用作公共插槽)?如果我将其名称更改为公共插槽,它不编译。当我将它声明为public而不是public slot时,它编译。我得到的唯一错误消息是avertissement:未找到选项'-F/Applications/Qt//5.1.0/clang_64/qtbase/lib'的目录。然后右键单击.cpp中的函数不执行任何操作。编译输出应该如下所示:
09:15:54:开始:“C:\Qt\5.0.2\Tools\MinGW\bin\mingw32 make.exe”C:/Qt/5.0.2/Tools/MinGW/bin/mingw32-Makefile.Debug\5.0.2\5.0.2\mingw47\u 32\include\qtwidget“-”I“C:\Qt\5.0.2\5.0.2\mingw47
,您是否尝试过创建类似的函数并将其用作公共插槽?很好,这是一个引用错误。我在我的Mac上做了一些测试,我注意到当你没有在.cpp中定义函数,而它被声明为一个公共函数时,你似乎不会得到一个错误。当您将其移动到公共插槽中时,会出现错误。你能粘贴你在.cpp文件中声明的函数stateChanged吗?我的函数的代码:void stateChanged(int state){//Code here}尝试添加downloader::之前像这样void downloader::stateChanged(int state){//Code here}
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