2014-10-19 27 views
1

我正在試圖運行下面的小塊的代碼,當一個segfault工作時(編譯gcc4.9.1 MacPorts的OS X 10.10優勝美地):段錯誤與gcc4.9.1用的std ::複雜<double>

#include <complex> 
#include <iostream> 

int main() 
{ 
    std::complex<double> z{1,0}; // 1 + i 
    std::cout << z << std::endl; // segfault here, why ?!?!? 
} 

該程序編譯和運行良好的任何其他編譯器(鐺,以前的g ++版本等),除了g ++ 4.9.1。我完全不解,任何人都可以重現segfault?這對我來說非常麻煩,因爲我的整個項目都使用複數,並且在我開始使用g ++ 4.9.1之後,所有事情都停止了(例如,segfaulting)。上面的代碼是我能想到的最小例子。我沒有使用任何優化標誌,只是普通的g++ -std=c++11 test.cpp。它看起來像一個編譯器錯誤,但我不確定。

+0

你可以發佈實際的消息還是隻說「分段錯誤」? – 2014-10-19 16:27:42

+0

它只是說'Segmentation fault:11' – vsoftco 2014-10-19 16:27:57

+0

如果您嘗試使用'clang ++ -stdlib = libstdC++'編譯程序,會發生什麼? – 2014-10-19 16:28:52

回答

0

如果有人遇到這個問題,這裏是答案。這是libgcc中的一個錯誤,請參閱我填寫的錯誤https://trac.macports.org/ticket/45483,現在已經修復,因此您可能需要升級/更新您的macports安裝。