うっかり、C++ の hello world プログラムで --shared フラグを付けてリンクして、exe ファイルを取得してしまいました。しかし、実行すると出力がsegfaultになります。誰かがその背後にある理由を教えてもらえますか?
再現方法:
eclipse c++ の標準 c++ hello world 問題。設定 - >共有ライブラリ設定の共有フラグボックスを確認してください。
ビルド出力:
make all ビルドファイル: ../app.cpp 呼び出し: GCC C++ Compiler g++ -O0 -g3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"app.d" -MT"app.d " -o "app.o" "../app.cpp" ビルド完了: ../app.cpp
ビルド ターゲット: app 呼び出し: GCC C++ リンカ g++ -shared -o "app" ./app.o
完成したビルド ターゲット: app
実行出力: セグメンテーション違反
ありがとう