質問
私は少し問題があります:私は持っているリンカーファイルを開かなければなりません .a
拡大。 dev-c ++を使用します。
解決
.a
ファイルはです ar
オブジェクトのアーカイブ(zipアーカイブのようなもの)(.o
)ファイル。ファイルをにリストできます .a
ファイルを使用します ar
プログラム:
ar t file.a
すべてのファイルを抽出します。
ar x file.a
他のヒント
でファイル .a
拡張機能は、UNIXファイルの命名規則を使用した静的ライブラリです。それらは、オブジェクトコードのインデックス付きコレクション以上のものではありません。あなたはそれらをあまり開いていません(あなたが次のようなツールを持っていない限り nm
また gdb
どちらも利用可能です できる リンカーにリンク時に使用するように指示するように、必ずしもあなたが望むかもしれないものではない場合、ライブラリで賢明なことをしてください。ほとんどのリンカーを使用すると、リンカーコマンドラインのメインプログラムコードとライブラリの順序の後に、すべてのライブラリ(静的と動的/共有の両方)を配置することが重要です。
あなたは本当にあなたがしたいという意味ですか? 開いた ファイル、またはむしろあなたが望むもの リンク それはあなたのコードで?
DEV-C ++は、デフォルトでMINGW/GCCコンパイラでインストールされます。アーカイブがMINGWで動作するように特別に構築されていない場合(たとえば、CygwinまたはLinux Archiveである可能性があります)、MingW生成コードにリンクできません。
アーカイブがMINGW/GCC互換ライブラリである場合、コードにリンクするだけです。 dev-c ++では、アーカイブにフルパスを追加すること(プロジェクトオプションにボタンがある)、またはアーカイブをAによって定義されたパスに配置することにより、プロジェクトリンカーオプションにアーカイブを追加する必要があります。 -L<path>
オプション、次にaを追加します -l<archive>
オプション。 IDがアーカイブがlibxxx.aと呼ばれることに注意してください。 -l<archive>
オプションは `-lxxx 'になります; 「lib」プレフィックスと「.a」拡張機能は暗黙的です。
アーカイブを検査して、それが提供する外部記号を決定するだけであれば、 NM そのために使用することができます。個々のオブジェクトファイルを抽出する場合は、 ar, 、私はあなたがどちらをやりたいのかを考えることはできませんが。
試す fstream, 、 また fstream file_op("c:\\test.a",ios::in);
, 、そして含めることを忘れないでください fstream.h
.