2017-02-25 45 views
0

最近我一直在嘗試存儲字符串變量。我在網上做了很多搜索,並且我找到的大多數答案都建議使用std :: string。所以我寫了一個測試程序,看起來像這樣:程序輸入點_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev不能設在動態鏈接庫

#include <iostream> 
#include <string> 
using namespace std; 

int main(){ 
    string s; 
    getline(cin,s); 
    cout << s; 
} 

程序編譯罰款,然而,當我運行程序我revieve這個錯誤:`Error Message

我是一個巨大初學編程並對發生了什麼感到困惑。任何人都可以給我一些關於這裏發生的事情的見解嗎?謝謝!

另外,我使用的GCC編譯器。

編輯:我已經成功地解決了這個問題。我所做的只是使用網上的教程重新安裝GCC。我不知道什麼是錯的,但現在已經修復了。

+1

你如何編譯你的代碼? –

+1

使用g ++代替gcc。第二個自動鏈接標準庫。 –

+1

丟失的符號(後我固定錯別字)demangles到'的std :: __ cxx11 :: basic_string的<炭的std :: char_traits ,性病::分配器> :: basic_string的()',其更好地稱爲默認構造用於'std :: string'。這可能是一個安裝問題。 – zwol

回答

1

當您使用GCC編譯C++,您需要使用g++驅動程序,而不是gcc。後者將編譯翻譯單元,但不會正確鏈接可執行文件。

+0

編譯代碼是「g ++ -std = C++ 14 test.cpp -o test.exe」但是,我仍然得到相同的錯誤 – McGrizz

+0

@Zachary:啊,看到上面有關GCC最近ABI變化的jww的評論。 –

相關問題