我只是继承了一些c++代码,这些代码是用一个包含main和其他一些函数的cpp文件编写的。还有一些.h文件包含类及其函数定义。
到目前为止,该程序是使用g++ main.cpp命令编译的。现在我已经将类分离为.h和.cpp文件,我需要使用makefile还是我仍然可以使用g++ main.cpp命令?
我只是继承了一些c++代码,这些代码是用一个包含main和其他一些函数的cpp文件编写的。还有一些.h文件包含类及其函数定义。
到目前为止,该程序是使用g++ main.cpp命令编译的。现在我已经将类分离为.h和.cpp文件,我需要使用makefile还是我仍然可以使用g++ main.cpp命令?
当前回答
我曾经使用一个定制的Makefile编译当前目录中的所有文件,但是我必须每次都将它复制到我需要的每个目录中。
所以我创建了我自己的工具-通用编译器,它使编译许多文件的过程更容易。
其他回答
我曾经使用一个定制的Makefile编译当前目录中的所有文件,但是我必须每次都将它复制到我需要的每个目录中。
所以我创建了我自己的工具-通用编译器,它使编译许多文件的过程更容易。
您可以使用一个命令,假设所有需要的.cpp和.h文件都在同一个文件夹中。
g++ *.cpp *.h -Wall && ./a.out
它将同时编译和执行。
.h文件将与编译无关…你只关心CPP文件…输入g++ filename1.cpp filename2.cpp main。cpp -o myprogram
意味着你正在编译每个CPP文件,然后将它们链接到myprogram中。
然后运行你的程序。/myprogram
when using compiler in the command line, you should take of the following: you need not compile a header file, since header file gets substituted in the script where include directive is used. you will require to compile and link the implementation and the script file. for example let cow.h be header file and cow.cpp be implementation file and cow.cc(c++ files can have extension .cpp, .cc, .cxx, .C, .CPP, .cp) be script file. Since gcc compiler notation for c++ file is g++, we can compile and link the files using
$g++ -g -Wall cow.cpp cow.cc -o cow.out
options '-g' and '-Wall' are for debugging info and getting warning for errors. Here cow.out is the name of the executable binary file that we can execute to run the program. it is always good to name your executable file otherwise name will be automatically given which might be confusing at times. you can also do the same by using makefiles, makefiles will detect, compile and link automatically the specified files. There are great resources for compilation using command line enter link description here
如果你想在cpp文件中使用#include <myheader.hpp>,你可以使用:
g++ *.cpp -I. -o out