2014-11-21 118 views
0

我正在學習C++,我正在使用+ -5類的項目 我使用繼承和內部類。 我爲每個類製作了一個單獨的cpp和hpp文件(也適用於內部類) 現在我想讓makefile編譯起來更容易。 我讀了很多關於makefile的教程,但沒有好的教程來處理主題繼承和內部類。Makefiles - 繼承的類和內部類

我會打一個比方:

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

你在說計算依賴關係嗎? – 2014-11-21 19:50:38

+0

關於makefile:我的意思是如果我讓Ao(編譯A類)我必須包括cpp或.o,或者既不編譯C類(因爲C繼承A) – 2014-11-21 19:56:45

+0

關於與問題內部類:當我定義「母類」之外的內部類時,我會談論限制或錯誤, – 2014-11-21 19:58:57

回答

2

對於makefile文件,你不必擔心語言,你不必擔心文件之間的依賴關係。而後者可以由任何體面的編譯器爲任何體面的語言生成(抱歉,fortran人...)。用gcc,必要的參數是-M -MF dependencyFileName.d。這會生成一個包含Makefile-syntax中的規則的文件,該文件可以包含在Makefile中以通知make所有的依賴關係。

編譯器生成的規則通常不足,例如,它不包含依賴文件作爲目標。你可以在這裏找到關於處理這個問題的不同方法的全面描述:http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/

一般來說,我會建議不要將某些依賴關係硬編碼到Makefile中:代碼更改以及依賴關係。而一個不完整的重建不一定會產生編譯器/鏈接器錯誤,有時你剛剛得到真的很奇怪你的程序的行爲。東西倒線:

  • 不知何故錯誤的函數被調用

  • 莫名其妙的論點得到一個函數調用

  • 我知道,這個函數必須返回零,爲什麼在skrewed了我從這個電話中得到一個?!?

更好地花時間讓你自動依存產生你已經花了一週的時間價值獵這種幻影右之前。