質問

私は少し問題があります:私は持っているリンカーファイルを開かなければなりません .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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top