我正在学习c ++,而我正在研究一个+ -5类的项目 我使用继承和内部类。 我为每个类创建了一个单独的cpp和hpp文件(也用于内部类) 现在我想让makefile更容易编译。 我阅读了很多关于makefile的教程,但没有很好的教程来处理主题继承和内部类。
我将举个例子:
class A
class B //is a inner class ob A
class C //inherits from B
class D //inherits from C
class test // containing a main with tests for all the classes
我如何在makefile中创建它? (每个班级都有一个hpp和一个cpp !!!)
你不需要为我编写一个makefile,如果你有一个非常好的教程的链接,我也很高兴:)
其他问题: 我读到在单独的hpp + cpp中定义内部类是不好的。真的吗 ?有什么风险?
谢谢你的回答:)
答案 0 :(得分:2)
对于makefile,您不必担心语言,您需要担心文件之间的依赖关系。而后者可以由任何体面的编译器生成任何体面的语言(对不起,fortran人...)。使用gcc
时,必要的参数为-M -MF dependencyFileName.d
。这将生成一个包含Makefile语法规则的文件,该规则可以包含在Makefile中,以通知make
所有依赖项。
编译器生成的规则通常不足,例如,它不包含依赖文件作为目标。您可以在此处找到处理此问题的不同方法的详细说明:http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
一般情况下,我建议不要以某种方式将依赖项硬编码到Makefile:代码更改,依赖项也是如此。并且不完整的重建不一定会产生编译器/链接器错误,有时您只是得到程序的非常奇怪的行为。填写以下内容:
以某种方式调用了错误的函数
以某种方式在函数调用
我知道这个函数必须返回零,为什么我从这个函数中得到一个?!
最好花点时间让你的自动依赖于,然后你花了一周的时间来寻找这样的幽灵。