2

Eclipse で 2 つのライブラリを作成しました。そのうちの 1 つは共有され、もう 1 つは静的です。それらを Eclipse でコンパイルした結果、(両方のライブラリ用に) Debug フォルダーが作成され、これらのフォルダーにはメイクファイル、オブジェクト ファイル (*.o)、および依存関係参照ファイル (*.d) が含まれています。それに加えて、静的ライブラリには *.a ファイルが含まれています。

ここで、新しいプロジェクトを作成し、このプロジェクトでこれらのライブラリを使用するものを作成します。通常、ライブラリを使用するときは、 と入力し#include <libraryname>ます。しかし、使用#include <mylibraryname>しても機能しません (未解決のインクルージョンが発生します)。これは驚くべきことではありません。なぜなら、Eclipse は私のライブラリーがどこにあるかを何らかの形で認識しているはずだからです。ですから、私の質問は、ライブラリの場所を Eclipse に通知するにはどうすればよいかということです。

追加推奨されるように、「プロジェクト -> プロパティ -> C/C++ ビルド -> 設定 -> ツール設定 -> GCC C++ リンカー -> ライブラリ」のシーケンスを実行します。次に、「ライブラリ(-l)」フィールドに「StaticList」を追加し(「libStaticList.a」ファイルがあるため)、「ライブラリ検索パス(-L)」フィールドにディレクトリの完全な名前を付けます。私の「libStaticList.a」が見つかりました。次に、[適用] と [OK] をクリックします。しかし、それは役に立ちません。Eclipse は好きではありません#include <StaticList>。それは不平を言います:「未解決の包含..」。

4

2 に答える 2

3

#includeing headers は、それらのヘッダー内の関数が存在することをコンパイラに認識させるだけです。これらの関数の実際の実装は、リンカーによってリンクされる必要があります。ここで、作成したライブラリ ( .a) ファイルの出番です。Eclipse を使用してライブラリにリンクする方法の例については、このスレッドを確認してください。

于 2013-01-17T14:48:28.833 に答える
0

< > の代わりに #include "yourlibrary.cpp" (二重引用符の間) が必要だと思います。

于 2013-01-17T15:17:23.487 に答える