在为轴添加滑块时,未定义对main的引用
Undefined reference to main when adding a slider for axes
我目前正试图在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()
,则编译器不会将其视为/识别为入口点。
这里已经回答了类似的问题。
相关文章:
- C++/生成文件错误:未定义对"main"的引用
- 在 Linux 上编译 - 在函数 '_start' 中:(.text+0x20):对 'main' 的未定义引用
- crt1.o:在函数"_start"中:(.text+0x20):对"main"的未定义引用
- main.cpp:(.text+0x8ea):在C++中未定义的引用
- main.cpp:(.text+0x8f):对[对象方法]的未定义引用
- 从 crt1.o 对 main 的未定义引用
- 对"main"的未定义引用 - 但包括 main 函数
- main.cpp :(.text 0x5f):未定义的引用
- 尝试使用 MinGW 编译 Assembly + C++:ccqKAvXJ.o:main.cpp:(.text+0x18):对 'GetMagicNumber' 的未定义引用
- 在Linux上使用makefile,使用Boost和MPI对"main"的未定义引用
- QT Subdir-未定义对main的引用-错误
- 为什么在包含类头的情况下,我的数组在main中未定义
- 生成文件错误:未定义对 main 的引用
- 代码块中对 main 的未定义引用
- OpenCV, XCode 中的链接错误, 架构的未定义符号 x86_64: "_cvHaarDetectObjects" , 引用自: _main in main.o
- main.c:(.text+0x30):对"互惠"的未定义引用
- 未能创建第一个库`对“main”的未定义引用
- g++ 链接问题:在函数 '_start' 中: (.text+0x20):对 'main' 的未定义引用
- LoopFillZerobss对main有一个未定义的引用
- 编译时对"main"的 C++ 未定义引用