c++ファイルをコンパイルしたい。私はチュートリアルに従っています。このチュートリアルでは、ファイルはVisual Studioでコンパイルされていますが、持っていません。g++でも同じことをしたいです。チュートリアルでは、VSの/GSおよび/SafeSEHを使用します。g++コンパイラでこれらのフラグを使用してファイルをコンパイルする方法を知りたいです。
質問が単純な場合は申し訳ありませんが、これまでg++を使用したことはありません。そして、私の英語でごめんなさい。ありがとうございました。
c++ファイルをコンパイルしたい。私はチュートリアルに従っています。このチュートリアルでは、ファイルはVisual Studioでコンパイルされていますが、持っていません。g++でも同じことをしたいです。チュートリアルでは、VSの/GSおよび/SafeSEHを使用します。g++コンパイラでこれらのフラグを使用してファイルをコンパイルする方法を知りたいです。
質問が単純な場合は申し訳ありませんが、これまでg++を使用したことはありません。そして、私の英語でごめんなさい。ありがとうございました。
だからまず最初に:
/GS
実際には、バッファ オーバーフローを自動的に検出し、そのようなオーバーフローが悪用される前にアプリケーションを終了しようとする「バッファ セキュリティ チェック」を実行します。
/SAFESEH
実行可能ファイル内にすべての構造化された例外ハンドラーのリストを埋め込むことで、実行をハイジャックしようとして無許可のハンドラーがインストールされているかどうかをオペレーティング システムが検出できるようにします。
あなたの質問に答えるために、g++ は /GS に似た機能を実装しています。コードをコンパイルし-fstack-protector-all
て有効にすることができます。興味がある場合は、gcc のマンページを参照するか、Google を使用して詳細を確認してください。g++ は構造化された例外処理 (Microsoft の拡張機能) を実装していないため、g++ には /SAFESEH に似たものはありません。
幸いなことに、あなたが取り組んでいる例が /GS と /SAFESEH による追加の保護を実証するように設計されていない限り、それらなしでコードをコンパイルしてもまったく問題にはならないはずです。これら 2 つのオプションを無視して、それらを使わずにコンパイルすれば、うまくいくと確信しています。
Visual Studio の入手に関心がある場合は、Microsoft から無料の「Express」バージョンを入手できます。ここの Web サイトをチェックしてください: http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products
これが役立つことを願っています。