0

私はEclipse、GCC 4.8を使用しており、MacOS10.7と10.8の両方でC++プロジェクトをビルドしています。ほとんどの場合、プロジェクトは、いくつかの特定の機能を除いて、適切にビルドおよび実行されます。例えば:

int main( int argc, char ** argv ) {
    string a = "test";
    string b = "-bla";
    string c;
    c = a + b;
    return 0;
}

コンパイルは成功しました:

プロジェクト作業用の構成デバッグのビルド**

すべてのビルドファイルを作成します:../ working.cpp呼び出し:GCCC++コンパイラg++-O0 -g3 -Wall -c -fmessage-length = 0 -std = c ++ 11 -MMD -MP -MF "working.d"- MT "working.d" -o "working.o" "../working.cpp"完成したビルド:../ working.cppビルドターゲット:Working呼び出し:MacOS XC++リンカーg++-o"Working"./working。 o完成したビルドターゲット:作業中

ビルドが完了しました**

ただし、次のランタイムエラーが発生しました。

dyld: lazy symbol binding failed: Symbol not found: __ZNSsaSEOSs
  Referenced from: /Volumes/Macintosh HD/Users/zeroliu/Study/CPP/Working/Debug/Working
  Expected in: /usr/lib/libstdc++.6.dylib

dyld: Symbol not found: __ZNSsaSEOSs
  Referenced from: /Volumes/Macintosh HD/Users/zeroliu/Study/CPP/Working/Debug/Working
  Expected in: /usr/lib/libstdc++.6.dylib

エラーの原因は

string c;
c = a + b; 

興味深いのは、次の変更を加えた場合です。

string c = a+b;

また

c = a;

プログラムは完全に実行されます。

ここで何が起こるかについて誰かが何か考えを持っていますか?ありがとう

4

0 に答える 0