Kra*_*ScS 5 c++ linux gcc program-entry-point reference
我遇到了用代码块编写的项目的问题.
我已经制作了新的控制台应用程序.但是当我添加一个新的类C :: B时,我会抛出一个错误:
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o||In function `_start':
(.text+0x20)||undefined reference to `main'
我不知道出了什么问题.
main.cpp中
#include <iostream>
#include "display.h"
int main()
{
    Display newDisplay;
    std::cout << "Hello world!" << std::endl;
    return 0;
}
display.cpp
#include "display.h"
#include <iostream>
Display::Display()
{
    std::cout << "Constructor" << std::endl;
}
Display::~Display()
{
    std::cout << "Destructor" << std::endl;
}
display.h
#ifndef DISPLAY_H
#define DISPLAY_H
class Display
{
    public:
        Display();
        virtual ~Display();
    protected:
    private:
};
#endif // DISPLAY_H
小智 4
我在 64 位 Ubuntu 14.04 上使用 13.12。我遇到了同样的问题,它似乎确实是类添加对话框的罪魁祸首。使用它来创建类文件,但不要将其添加到项目中。右键单击“项目”选项卡(窗口中的左窗格)中的项目标题,然后使用上下文菜单中的“添加文件”。那么应该可以编译了。
在添加新类之前,这是一个典型的编译行:
g++ -Wall -g -I/media/Data/programming/source/wxWidgets-3.0.2/build/ubuntu14.04/debug/lib/wx/include/gtk2-unicode-3.0-d -I/media/Data/programming/source/wxWidgets-3.0.2/include -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread  -c /media/Data/programming/projects/wx/Xperiments/XperimentsApp.cpp -o ./bin/Ubuntu14/debug/XperimentsApp.o
添加完全空的类“MyFileTree”后,新类的编译行变为:
g++ -Wall -g -I/media/Data/programming/source/wxWidgets-3.0.2/build/ubuntu14.04/debug/lib/wx/include/gtk2-unicode-3.0-d -I/media/Data/programming/source/wxWidgets-3.0.2/include -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -I -c /media/Data/programming/projects/wx/Xperiments/MyFileTree.cpp -o ./bin/Ubuntu14/debug/MyFileTree.o
需要一段时间才能发现差异,不是吗?
-c 开关之前的那个杂散 -I 是什么?
它不会出现在构建选项对话框或我能找到的其他任何地方,所以如果它出现在那里,如何删除它?这可能与我用来设置选项的 wxconfig 脚本有关 - 但据我所知,它的调用没有任何变化。它与以下内容没有变化:
/media/Data/programming/source/wxWidgets-3.0.2/build/ubuntu14.04/debug/wx-config --cflags --debug=yes
正如我所说,不要通过类创建对话框添加到项目,而是使用管理窗口手动添加。