gpt4 book ai didi

c++ - 找不到体系结构 x86_64 mac os 10.13.3 的符号

转载 作者:行者123 更新时间:2023-11-30 02:20:39 25 4
gpt4 key购买 nike

我知道这个问题已经被问过一千次了,但我尝试了所有的解决方案,但没有任何帮助。

我在 Qt 中编写了一个小程序,过了一会儿我收到了这个错误消息:

symbol(s) not found for architecture x86_64
linker command failed with exit code 1 (use -v to see invocation)

我重新执行了 qmake 命令和重建项目,但没有任何效果。我是 Qt 的新手。我在 mac os 10.13.3 上使用 Qt 版本 5.10.0

这是我的文件:

图形界面

#ifndef GUI_H
#define GUI_H

#include <QWidget>
#include <QPainter>

#include <QHBoxLayout>
#include <QVBoxLayout>

#include <QPushButton>
#include <QLineEdit>

class gui : public QWidget
{
Q_OBJECT

public:
gui(QWidget *parent = 0);
~gui();

private:
QHBoxLayout *hbox1;
QHBoxLayout *hbox2;
QVBoxLayout *vbox;

QPushButton *search;
QPushButton *replace;

QLineEdit *searchText;
QLineEdit *replaceText;
QLineEdit *textField;

public slots:

void find();
void replaceFuckingText();
};

#endif // GUI_H

图形用户界面

#include "gui.h"

gui::gui(QWidget *parent)
: QWidget(parent)
{

hbox1 = new QHBoxLayout();
hbox2 = new QHBoxLayout();
vbox = new QVBoxLayout();

search = new QPushButton("Search");
replace = new QPushButton("Replace");

searchText = new QLineEdit();
replaceText = new QLineEdit();
textField = new QLineEdit();

hbox1->addWidget(searchText);
hbox1->addWidget(replaceText);

vbox->addLayout(hbox1);

hbox2->addWidget(search);
hbox2->addWidget(replace);

vbox->addLayout(hbox2);

vbox->addWidget(textField);

setLayout(vbox);
show();

connect(replace,SIGNAL(clicked()), this, SLOT(replaceFuckingText()));

}

gui::~gui()
{

}

void gui::replaceFuckingText() {
QString searchTextValue = searchText->text();
QString replaceTextValue = replaceText->text();
QString textToReplace = textField->text();

textToReplace.replace(searchTextValue,replaceTextValue);

textField->setText(textToReplace);
}

主要.cpp:

#include "gui.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
gui w;
w.show();

return a.exec();
}

我希望你能帮助我。我正在处理这个错误一个多星期了。如果您需要更多信息,请随时询问,我会发布。

最佳答案

symbol(s) not found for architecture x86_64

在 MacOS 上通常不难诊断,通常它来自您在 header 中定义但没有正确实现的东西!

要知道您收到此消息的确切原因,请单击 Qt Creator 中的 Compiler Output,很可能您会看到 make 错误的来源,在您的代码案例中我看到下面的错误:

Undefined symbols for architecture x86_64: "gui::find()", referenced from: gui::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in moc_gui.o ld: symbol(s) not found for architecture x86_64

从这条消息看来,您已经在 header 中声明了 gui::find() 插槽或方法,但在您的 cpp 中该插槽没有任何实现!因此,您只需要在 cpp 文件中为插槽 gui::find() 添加代码即可。

当我将以下内容添加到您的 gui.cpp 时,代码编译没有问题:

void gui::find()
{
// do some staff
}

关于c++ - 找不到体系结构 x86_64 mac os 10.13.3 的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49453582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com