2015-04-16 111 views
3

我正在Windows操作系統上使用Eclipse構建一個C++項目,我也使用了Eigen Linear Algebra庫。我的問題是Eigen的編譯時間非常慢(約50秒)。預編譯特徵頭文件

我已經試過這些提議的解決方案:

我真的需要一個解決方案,這是非常不現實的,等待47秒,我每次構建項目te st某事。

任何想法深表感謝,謝謝。

+0

預編譯頭支持是特定於編譯器的。你正在使用哪個編譯器和版本?從第一個鏈接到底什麼都不起作用? – Angew

+0

@Angew。我正在使用Cygwin C++編譯器-g3。關於第一個鏈接,我盡我所能去關注它,但它沒有給我任何結果,沒有任何改變,我可能在它說的步驟中犯了一個錯誤「然後去雜項選擇選擇發佈配置,並添加... 」。我不確定如何在這種形狀中構建我的路徑。 –

回答

0

Eigen是一個模板庫,這意味着類是基於模板參數定義的。我不認爲如果不讓編譯器知道在整個代碼庫中需要的所有可能的類,就不會進行預編譯。

或者,您可以爲Eigen編寫一個包裝並聲明所需的所有類型並使用該庫。然而,您可能會失去很多Eigen的優勢(請參閱here,here等)。

+0

它*是*可以使用預編譯頭文件加快模板編譯,至少使用編譯器進行兩階段名稱查找。它可能不會加速實例化,但它仍然可以節省解析。通過模板代碼,通常會涉及很多解析。 – Angew

+0

@Angew夠公平的。然而,第二點仍然有效,儘管由於表達模板的丟失而導致性能危險。 –