3

TinyXML パーサーで動作する C++ コードを入手しました。ただし、これを行うには、通常のソース コードに TinyXML のソース コードを含める必要がありました。TinyXML を別のライブラリとして含めたいと思います。Cygwin C++ コンパイラで Eclipse を使用しています。これを行う良い方法は何ですか?

4

2 に答える 2

4

ライブラリを自分のプロジェクトのソースコードから分離したいと思いますが、ライブラリが同じフォルダにない場合のビルド方法がわかりません。


ライブラリに*.libファイルと*.hファイルがプリコンパイルされていると仮定します。

  1. ライブラリのソースコードを別のディレクトリに移動します
  2. メニューバー「プロジェクト」
  3. メニュー「プロパティ」は、すべてのプロジェクトプロパティのダイアログボックスを開き、左側にリストが表示されます。
  4. リスト項目「C/C ++ビルド」はGUIを変更し、gccのコンパイラ/リンカー/アセンブラーのすべてのオプションを表示します(私はアセンブリを実行しません...したがって、アセンブラーでは何も実行しません)。[1]
  5. GCC Cコンパイラ->ディレクトリ:
  6. 緑のプラスアイコン[2]->*.hファイルのパスを指定します
  7. これでコンパイラは満足するはずです(ただし、リンカは各関数の実際の定義が何であるかを知らないため、リンクに失敗します)
  8. GCC Cリンカー->ライブラリ:
  9. ライブラリ検索パス(-L)->緑色のプラスアイコン->*.libファイルのパスを指定します
  10. ライブラリ(-l)->緑色のプラスアイコン->使用している各ライブラリの名前を指定します
  11. これでリンカーは満足のいくものになり、コードはコンパイルされるはずです。

[脚注-1]GUIC / C ++ビルドペインは、gccのコマンドラインコンパイラ/リンカーのラッパーです...すべてを視覚的に表示するため、使いやすくなっています。

[脚注-2]「+」アイコンは、ライブラリ*.hインクルードファイルが配置されている場所をコンパイラに通知します。コンパイラーは、ライブラリーがコンパイルする前に、ライブラリーがどの関数プロトタイプを持っているかを知るために*.hファイルを必要とします。


実際の(コンパイルされていない)*。cおよび*.hがあると仮定します。

  1. 手順7を除いて、上記と同じ手順を実行します。
  2. 手順7では、ライブラリの*.cファイルがEclipseの「マネージドメイク」によって認識されることを確認する必要があります。ソースコードが表示されない場合は、ソースをコンパイルするためにソースの場所を指定する必要があります。
于 2009-04-25T18:20:05.730 に答える
2

基本的に簡単です。ライブラリのソース コードをコンパイルし、 ar(1)でライブラリを構築します。はい、驚きです。ライブラリは単なるアーカイブです。UNIXはその点でクールです。

その後、最終的なコードをビルドするときに、コードを静的ライブラリとして含めることができます。

私は Eclipse をあまり使用しないので、IDE 内での正確なプロセスを説明することはできませんが、それをビルドするために別のプロジェクトをセットアップする必要があると思います。

ここで、必要なのが DLL をビルドすることである場合は、いくつかの特別なフラグを使用する必要があります。ここにいいページがあります。

于 2009-04-25T17:07:33.063 に答える