Answers:
在main.cpp之后列出所有其他cpp文件。
即
g++ main.cpp other.cpp etc.cpp
等等。
或者您可以单独编译它们。然后,将所有生成的“ .o”文件链接在一起。
现在,我已经将类分别划分为.h和.cpp文件,我需要使用makefile还是仍然可以使用“ g ++ main.cpp”命令?
如果要将其放入Makefile中,一次编译多个文件是一个糟糕的选择。
通常在Makefile中(对于GNU / Make),应该足以写出:
# "all" is name of the default target, running "make" without params would use it
all: executable1
# for C++, replace CC (c compiler) with CXX (c++ compiler) which is used as default linker
CC=$(CXX)
# tell which files should be used, .cpp -> .o make would do automatically
executable1: file1.o file2.o
这样,make
仅需重新编译即可正确地进行重新编译。还可以添加一些调整来生成头文件相关性-这样make也可以正确地重建由于头文件更改而需要重建的内容。
如果需要,您仍然可以直接使用g ++:
g++ f1.cpp f2.cpp main.cpp
其中f1.cpp和f2.cpp是其中包含函数的文件。有关如何使用make进行构建的详细信息,请参见出色的GNU make文档。
我知道这个问题是在几年前提出的,但仍然想分享我通常如何编译多个c ++文件。
g++ -c *.cpp -o myprogram
。"myprogram"
./myprogram
就这样!!
我使用*的原因是如果您有30个cpp文件怎么办?或只使用*号并节省时间:)
ps仅在不关心makefile时才使用此方法。
正如rebenvp所说,我曾经使用过:
g++ *.cpp -o output
然后执行以下输出:
./output
但是更好的解决方案是使用make
文件。阅读此处以了解有关make
文件的更多信息。
另外,请确保已在.h
文件中添加了所需的.cpp
文件。
我曾经使用自定义的Makefile编译当前目录中的所有文件,但是每次都必须将其复制到需要的每个目录中。
因此,我创建了自己的工具-Universal Compiler,它在编译许多文件时使此过程变得更加容易。
g++ *.cpp -o output