在为轴添加滑块时,未定义对main的引用

Undefined reference to main when adding a slider for axes

本文关键字:未定义 main 引用 添加      更新时间:2023-10-16

我目前正试图在OpenGl/QT/C++中添加滑块以在不同的轴上移动,但在编译时出现了一个模糊的"未定义的对"main"的引用"错误。这是我的主要课程。。。

我的头文件:

#include "MyWidget.h"
#ifndef MYMAIN_H
#define MYMAIN_H
class MyMain: public QObject{
    public:
    MyMain();
    int main(int argc, char *argv[]);
    MyWidget *MyWidget;
    public slots:
    void setXTranslation(int value);
};
#endif

我的源文件:

#include "MyMain.h"
 MyMain::MyMain()
 {
 }
 int MyMain::main(int argc, char *argv[]) {
     some code here...

     QSlider *xSlider = new QSlider(Qt::Vertical);
     xSlider->setRange(0, 10);
     QObject::connect(xSlider, SIGNAL(valueChanged(int)),
                 this, SLOT(setXTranslation(int)));

     some more code here.... 
     // start it running
     return app.exec();
 }
 void MyMain::setXTranslation(int value)
 {
     some more code here....
 }

程序应包含一个名为main的全局函数。

你可以这样实现你的主要功能:

int main(int argc, char* argv[]) {
     return MyMain().main(argc, argv);
}
int MyMain::main(int argc, char *argv[]) {
    ^^^^^^^^

删除此。

main函数需要在全局作用域中,而不是在MyMain中。

C++语言希望main()函数在全局范围内(尽管它不是关键字),并将其识别为程序的入口点。

如果main()在类内定义为MyMain::main(),则编译器不会将其视为/识别为入口点。

这里已经回答了类似的问题。