将项目添加到项目后未定义对“主”的引用

我在用代码块编写的项目遇到问题。

我做了新的控制台应用程序,并build立。 但是当我添加一个新的类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 

我在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开关之前?

它不会出现在构建选项对话框或其他任何我能找到的东西,所以如果它在那里,你如何删除它? 这可能与我用来设置选项的wxconfig脚本有关 – 但是在我看来,它的调用中没有任何改变。 这是从以下变化:

 /media/Data/programming/source/wxWidgets-3.0.2/build/ubuntu14.04/debug/wx-config --cflags --debug=yes 

正如我所说, 不要通过类创建对话框添加到项目手动使用管理窗口。

今天有同样的问题。

使用“项目” – >“构建选项” – >“搜索目录”解决此问题

然后将编译器和链接器选项设置为“仅使用项目选项”