場景:使用boost庫的正則模塊時出現編譯超慢的情況,看了頭文件
[cpp]
#include <boost/regex.hpp>
的引用關系,它依賴的頭文件相當多,這應該就是根本原因吧。
目前知道可行的方案只有使用預編譯頭,可能在cpu比較低的電腦才明顯發現.而且只有在修改代碼後增量編譯才會出現這個問題。 www.2cto.com
--- 可以節省20秒時間,使用boost庫時.
1.預編譯頭文件生成,同理,如果使用vc++的話一樣是有自己的生成方式.
g++ -o /E/software/Lib/common/boost-1.46.1/win32/release/share/include-gch/StdAfx.h.gch -x c++-header -c src/StdAfx.cpp -g -Wall -IE:/software/Lib/common/boost-1.46.1/include
2.只能放在.cpp文件第一行,注意,不是.h文件,不然會有提示錯誤,否則它前面的內容會被忽略.
include/data/schema_analyse.h:11:20: error: StdAfx.h: No such file or directory
有個問題沒解決,雖然沒遇到.
3.但是不放在頭文件裡有個問題,就是頭文件包含了第3方庫的結構體,類成員變量時,就又是需要包含第3方庫的頭文件,這樣又會編譯慢了.也就是說如果頭文件裡使用指針,引用類型的變量就可以很好的利用預編譯頭文件.但是如果繼承了呢?