我有一個C++程序,它有許多許多功能,我有不同的.cpp文件的每個功能。從主程序中,我只提供一些參數,只是調用函數。但是,編寫完整的東西需要花費很多時間。對於每個編譯,我只更改主程序中的一些參數,並保留所有功能。 無論如何加快編譯。?快速編譯在c + +
回答
您正在重新編譯不必要的代碼。通常IDE會自動處理它。否則,這取決於你如何編譯你的代碼。例如線是這樣的:
g++ *.cpp
或
g++ -o program a.cpp b.cpp c.cpp
是非常緩慢的,因爲在每一個編輯,重新編譯一切。
如果你正在寫Makefile文件,你應該仔細寫出來,以避免重新編譯。例如:
.PHONY: all
all: program
program: a.o b.o c.o
g++ -o [email protected] $^ $(LDFLAGS)
%.o: %.cpp
g++ $(CXXFLAGS) -o [email protected] $<
# other dependencies:
a.o: a.h
b.o: b.h a.h
c.o: c.h
在上述例子中,改變c.cpp
引起c.cpp
編譯和連接的程序。更改a.h
會導致編譯a.o
和b.o
並鏈接程序。也就是說,在每個版本上,您都可以編譯儘可能少的文件以使程序保持最新。
附註:編寫Makefiles時要小心。如果你錯過了依賴關係,你可能無法編譯足夠的文件,並且最終可能會出現難以定位的分段錯誤(最好)。看看也處於gcc
爲-M*
選擇,您可以使用gcc
本身產生依賴手工,然後include
在Makefile
生成的輸出。
是的,我知道我不需要重新編譯所有的函數文件。我只改變主程序中的一些值。我從來沒有寫過一個make文件,如果你能告訴我怎麼寫一個make文件會非常有幫助,謝謝。 – lovespeed
@SthitadhiRoy,只是嘗試搜索「Makefile教程」,你會得到很多來源。如果你想要一個徹底的,但容易閱讀的解釋,你可以簽出[GNU make手冊](http://www.gnu.org/software/make/manual/make.html#Introduction)本身。 – Shahbaz
他給了你一個完整的例子makefile,就在那裏。將它保存到一個名爲'Makefile'的文件中,正確設置文件名('func1.o',而不是'a.o',或其他),查找文檔,然後詢問具體問題。 – Useless
- 儘量減少你的參數變化的影響的代碼,最好只改變一個源文件上(main.cpp中)沒有人實際上還要考慮。
- 檢查你的包括:你真的需要它嗎?儘可能使用前向聲明(例如#include而不是),用於你自己的類,向前聲明你可以。
- 嘗試使用clang(llvm.org)編譯器。它有時編譯比gcc更快(假設你在linux/unix上)並且給出了更多的可讀錯誤。
編輯:我是假設你只需要重新編譯所需的內容。正如其他人所建議的,使用構建系統(Makefile,IDE,CMake ...)來運行最少量的編譯。
也許這會或不會太大的幫助,但我通過ssh運行的代碼,我知道它永遠運行/編譯。如果您正在從數據文件中讀取數據,而不是運行整組數據,則只能運行一個或兩個文件以查看您的預期結果。這將是您最終結果的一個樣本,但應該仍然準確(只需較少的統計數據)。一旦你調整了你的代碼以達到你的滿意度,那麼就運行一切。 通常是這樣你就沒有問題了,而且編譯時間比較快。
- 1. makefile:如何快速編譯
- 2. IDE如何快速編譯?
- 3. 快速SASS的Automagic編譯
- 4. 編譯快速啓動在Windows
- 5. 在xCode中加快編譯速度
- 6. 快速問題:位於Windows中的C++編譯器在哪裏?
- 7. 快速按需C++彙編
- 8. 什麼是編譯速度快的編譯編程語言?
- 9. C++ 0x TMP編譯速度
- 10. 快速內核重新編譯
- 11. F#交互速度快於編譯
- 12. 快速排序分區不編譯
- 13. 錯誤編譯Boost.Python快速啓動
- 14. Haskell Miso編譯速度更快
- 15. 如何加快我的C++編譯速度?
- 16. 如何快速編譯C#DLL,加載和使用
- 17. 如何使用scala內部編譯源比fsc快(快速scala編譯器)
- 18. Haxe如何加快編譯速度(選擇最快的目標)
- 19. C編程修改快速排序
- 20. 快速C++圖形(如編程時間)
- 21. 有沒有像C++的libtcc或者極其快速的C++編譯器?
- 22. 快速翻譯JS if/else速記?
- 23. UITableView編程快速
- 24. 的Java反編譯器和編輯器快速修改
- 25. 在c中快速打印#
- 26. 在Traceur中快速編譯定義全局值
- 27. Rails的薩斯編譯在快速發展的機器
- 28. 如何在vim中快速編譯和運行scala代碼?
- 29. 編譯錯誤列表然後在Eclipse中快速消失
- 30. 在GHC中加速編譯
什麼是您的命令行編譯?你在使用Makefile還是其他的構建工具? – RedX
可能會提出某些平臺/編譯器特定的更改,但您不指定正在使用的內容。 – crashmstr
你使用什麼編譯器?如果添加該細節,您可能會得到更有針對性的答案。 – eran