多文件的linux编译

编译虐我千百遍,我待编译如初恋。

1,艰难的allinone.cc编译。

我想要编译一个单文件allinone.cc。这个文件包含了其他的头文件,目录如下。

多文件的linux编译

为此,我在 shell中输入

g++ allinone.cc -std=c++11 -lmuduo_net -lmuduo_base -lpthread

结果编译失败,报错:

多文件的linux编译

 2.原因分析。

虽然allinone.cc包含了这些个头文件,但在操作中,由于没有编译这些头文件,也就无从链接,从而出现未定义引用。

3.解决办法

机(cai)智(ji)如我,将这些头文件及他们相应的.cc源文件放到allinone.cc的目录中,然后修改allinone.cc文件的包含,如下:

多文件的linux编译

再shell中输入:

多文件的linux编译

没错,我把所有文件名都再shell中写上了。编译成功,perfect(撒花)。

4.启发

是时候学一波makefile了。