私は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;
プログラムは完全に実行されます。
ここで何が起こるかについて誰かが何か考えを持っていますか?ありがとう