2017-02-25 9 views
0

最近、変数を文字列に格納しようとしています。私はオンラインでかなりの検索をしました。私が見つけた答えのほとんどは、std :: stringの使用を推奨しています。だから私はこのようになりますテストプログラムを書いている:プロシージャのエントリポイント_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE1をダイナミックリンクライブラリに配置できませんでした

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

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

プログラムは罰金コンパイル私はこのエラーをrevieveプログラム実行すると、しかし、: `Error Message

を私はプログラミングに巨大な初心者です何が起こっているのか混乱している。誰も私にここで何が起こっているのいくつかの洞察力を与えてもらえますか?ありがとう!

また、私はGCCコンパイラを使用しています。

編集:私は問題を解決しました。私がやったことは、Web上のチュートリアルを使ってGCCを再インストールすることでした。私は何が間違っていたのか分からないが、今修正されている。

+1

コードをどのようにコンパイルしていますか? –

+1

gccの代わりにg ++を使用します。 2番目は標準ライブラリに自動的にリンクします。 –

+1

デフォルトのコンストラクタとしてよく知られている 'std :: __ cxx11 :: basic_string 、std :: allocator > :: basic_string()'に、 'std :: string'のために。これはインストールの問題になりがちです。 – zwol

答えて

1

GCCを使用してC++をコンパイルするときは、gccではなく、g++ドライバプログラムを使用する必要があります。後者は翻訳単位をコンパイルしますが、実行可能ファイルは正しくリンクされません。

+0

コンパイルコードは "g ++ -std = C++ 14 test.cpp -o test.exe"ですが、まだ同じエラーが表示されています – McGrizz

+0

@Zachary:ああ、GCCの最近のABI変更に関するjwwのコメントを参照してください。 –

関連する問題