タグ

c++とgccに関するnilabのブックマーク (6)

  • Using and Porting the GNU Compiler Collection (GCC) - GCCコマンド・オプション

    GCCを起動すると、 通常は、 前処理(preprocessing)、 コンパイル、 アセンブル、 リンクが行われます。 「全体的(overall)オプション」によって、 この一連の処理を中途の段階で停止することができます。 例えば、 `-c'オプションはリンカを起動しないよう指示するものです。 この場合、 アセンブラによって生成されるオブジェクト・ファイルが出力となります。 他のオプションは、 一連の処理の中の1つの段階に渡されるものです。 オプションの中には、 プリプロセッサを制御するものもあり、 コンパイラ自体を制御するものもあります。 また、 アセンブラやリンカを制御するオプションもありますが、 それらのほとんどは、 ここではドキュメント化されていません。 というのは、 このようなオプションを使うことが必要になることはめったにないからです。 GCCにおいて使うことのできるコマンドラ

    nilab
    nilab 2012/01/27
    Using and Porting the GNU Compiler Collection (GCC) - GCCコマンド・オプション : ディレクトリ探索のためのオプション 『-I』 ハイフンI, ハイフンアイ
  • Page Redirection - GNU Project

    This page has been incorporated into another. If you are not redirected automatically, click here. For questions related to the use of GCC, please consult these web pages and the GCC manuals. If that fails, the gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer list at gcc@gcc.gnu.org. All of our lists have public archi

    nilab
    nilab 2011/11/30
    C++0x/C++11 Support in GCC - GNU Project - Free Software Foundation (FSF)
  • Electric Fence freecode日本語情報ページ - OSDN

    Electric Fence(efence)は、malloc()のメモリバッファでオーバーラン(またはアンダーラン)を正確に起こす命令であなたのプログラムを停止します。。続いてGDBはバグを起こすソースコード行を表示します。仮想メモリのハードウェアを使用して各バッファの境界にレッドゾーンを作成し、それにタッチし、あなたのプログラムが停止します。長年にわたってあなたを悩ませている、これらの以前は捕捉不可能だった全てのオーバーランのバグをキャッチします。

    Electric Fence freecode日本語情報ページ - OSDN
    nilab
    nilab 2011/09/20
    「Electric Fence(efence)は、malloc()のメモリバッファでオーバーラン(またはアンダーラン)を正確に起こす命令であなたのプログラムを停止します。。続いてGDBはバグを起こすソースコード行を表示します」Electric Fence
  • gcc のデバッグ術

    Unix系コマンドラインユーザーのための、 gcc/g++/g77 による開発におけるデバッグ術を簡単に紹介します。 以下の内容は gcc 2.7.2.3 での動作は確認しています。 g++/g77 でも恐らくは通用すると思うのですが、 ひょっとすると異なる部分があるかもしれません。 筆者は g++/g77 の使用経験がないので、その場合は御容赦を願います。 実行前 キーワード「コンパイルオプション, -Wall, -O2, -O4」 まずは gcc にオプション opt'-Wall' を付けてコンパイルし、 警告がなくなるまでソースを修正します。 これは 常識 です。 次に opt'-O4 -Wall' でコンパイルします。 「未初期化変数の使用」の警告 (`foo' might be used uninitialized in this function) は、 opt'-O4' を付

    nilab
    nilab 2011/09/20
    gcc のデバッグ術 : 「"A malloc(3) debugger" である ElectricFence」
  • cross platform development - firewood's diary

    クロスプラットフォームというか、プラットフォーム依存というか、そういうことをよく扱っているのでメモ。基的にC/C++。 メモ プリプロセッサは、未定義の識別子を0として扱う。 従って、#if __GNUC__ >= 3はGCC3以上として使えるが、GCC2系かどうかを#if __GNUC__ < 3で判定しようとすると、GCCでないものも含まれるので注意が必要。 コンパイラ GCCかどうか #ifdef __GNUC__ #if __GNUC__ >= 3 // GCC3.0以上 Visual C++かどうか #ifdef _MSC_VER(VC++以外でも定義されている場合あり) #if _MSC_VER >=1000 // VC++4.0以降 #if _MSC_VER >=1100 // VC++5.0以降 #if _MSC_VER >=1200 // VC++6.0以降 #if _

    cross platform development - firewood's diary
    nilab
    nilab 2010/02/10
    cross platform development - 糸且之入Eヨ言己 : 「クロスプラットフォームというか、プラットフォーム依存というか、そういうことをよく扱っているのでメモ。基本的にC/C++。」 #ifdef 環境切り分け
  • error: extra qualification ってなんだ、と思ったらヘッダーでメンバー関数をクラス名で就職してた。コピペするとよくこうなる。 - tuedaの日記

    #include <iostream> using namespace std; class Base { public: }; template <int size> class Derived { public: Derived<size>:: Derived () { cout << size << "\n"; }; }; int main ( int argc, void* argv[] ) { return 0; }; g++ -Wall -O3 -I/usr/include -I/usr/local/include main.cpp -c main.cpp:13: error: extra qualification ‘Derived<size>::’ on member ‘Derived’ main.cpp:13: error: explicit specialization

    nilab
    nilab 2008/09/01
    えー、いままでこんなエラー出なかったのに。。。 / error: extra qualification ってなんだ、と思ったらヘッダーでメンバー関数をクラス名で就職してた。コピペするとよくこうなる。 - tueda_wolfの日記
  • 1