我正在学习c ++,并开始看thenewboston的youtube教程。不幸的是,当我使用gcc时,他正在使用Code :: Blocks,并且我无法选择通过单击按钮来创建新的类文件,因此必须手动创建它们。
我不明白为什么Code :: Blocks和gcc中的相同代码将在Code :: Blocks中起作用,但gcc不能。 gcc是否需要针对同一语言的不同编码?
编辑:我已经下载了Code :: Blocksself,并对其进行了测试
其他问题谈论我需要如何为Windows提供入口点,但我不知道该怎么做。
Test.cpp代码:
#include <iostream> #include "ClassTest.h" using namespace std; int main() { ClassTest bo; }
ClassTest.h代码:
#ifndef CLASSTEST_H #define CLASSTEST_H class ClassTest { public: ClassTest(); }; #endif // CLASSTEST_H
ClassTest.cpp代码:
#include <iostream> #include "ClassTest.h" using namespace std; ClassTest::ClassTest() { cout << "blah blah" << endl; }
答案 0 :(得分:0)
我不太确定我是否明白问题所在;我将其理解为“如何将这三个文件构建为可以从Windows命令行运行的.exe?”
答案是在包含文件的文件夹中的命令行上运行以下内容:
g++ -c Test.cpp -o Test.o
g++ -c ClassTest.cpp -o ClassTest.o
g++ Test.o ClassTest.o -o Test.exe
前两个命令将每个CPP文件构建为一个“目标文件”,该文件本身不是一个完整的程序,但包含该CPP文件中代码的编译版本。最后一条命令告诉编译器将两个目标文件粘贴到一个程序中,并解决它们之间的所有交叉引用。 (例如,Test.cpp构造ClassTest对象的部分最终需要从ClassTest.cpp调用ClassTest构造函数代码。)
Code :: Blocks是一个IDE,可以弄清楚如何在项目中构建每个源文件,以及如何将它们自身链接在一起。但是,如果您不使用IDE,则需要以其他方式进行。您可以像这样手动进行操作,也可以编写Makefile来检查哪些代码文件已更改,并在运行make
命令时重新构建并重新链接依赖于它们的所有内容。大多数人是这样做的。
至于“为Windows提供入口点”,可能是指要在屏幕上显示窗口的GUI应用程序。对于您编写的控制台程序,“入口点”为main()
,您只需将内容打印到命令行窗口即可。要制作自己的实际Windows风格的GUI窗口,您需要使用Windows API,我不会告诉您太多。