[ C++で開発 ]
Linuxを始めとする各種プラットフォームで広く使用されるコンパイラGCC、そのTipsを集めました。
廃止予定の既存の関数を呼び出しているコードがあると、コンパイル時に警告を出したいことがあります。
#ifndef SIMPLE_H_ #define SIMPEL_H_ __attribute__((deprecated)) void oldFunc(); class Simple { public: __attribute__((deprecated)) int lessAccurateCalc(int a); ... }; |
stabs形式とDWARF形式が主要なデバッグ情報形式です。
CentOS 5.2/GCC 4.1.2では、デフォルトの-gオプションで生成するデバッグ情報は、DWARF(2? 3?)形式です。
メモ
CentOS 5.2/x86で、GCC-4.1.2のg++で、-gを付けて生成したオブジェクトファイルと、-ggdbを付けて生成したオブジェクトファイル、および-gdwarf-2を付けて生成したオブジェクトファイルは同一でした。一方、-gstabsを付けて生成したオブジェクトファイルは上記と異なります(サイズも大きい)。-gstabs+を付けると、さらに違うオブジェクトファイルが生成されました。