0

私の問題は、現在のプロジェクトにライブラリを含めることができないことです。[netbeansのライブラリをプロジェクトに含める方法は、リンカーを介してライブラリをプロジェクトにリンクすることです]。しかし、私の現在のプロジェクト(組織を去った別のプログラマーによって書かれた)では、リンカーのオプションは表示されません。スクリーンショットを添付しました。リンカを介してライブラリを現在のプロジェクトにリンクするオプションがIDEに表示されないという問題に直面しています。誰か助けてくれませんか。私はあなたに同じことを非常に感謝します。

ライブラリをプロジェクトにリンクする方法を教えてください。私は本当にそれをするのに多くの日を費やしました、しかし私は成功しませんでした。スクリーンショット

4

1 に答える 1

0

libspatialindex だけに関心があると仮定すると、次のようになります。

  1. 適切なファイルがインストールされていることを確認してください: を試して、インストールされているlocate libspatialindex場所を確認してください。*.a、*.so、または同様の拡張子を使用できます。パスに注意してください。
  2. プロジェクトのルート ディレクトリに移動します。例: /home/keira/netbeans/projects/myproject
  3. 試す:gcc -i main.cpp -L/usr/lib/ -lspatialindex -o myfile

-L/usr/lib を、ライブラリがあることがわかっている実際の場所に置き換えます。

cxx リンク フラグは、通常、ライブラリの名前にプレフィックス -l を付けたものです。たとえば、システムで見つかった名前libspatialindex.so-lspatialindex.

Debian および Ubuntu システムで実際のフラグを見つける方法はありますが、思い出せません。または、いつでも Google で検索したり、ライブラリのドキュメントを読んだりできます。

通常、未定義の関数などでリンカー エラーが表示される場合は、ヘッダーが含まれていて見つかった場合、リンクしていないことを意味します。

Netbeans については、追加の引数をコンパイラに渡すオプションがあると思います。この場合、-lspatialindexNetbeans がライブラリとヘッダーの場所を認識していれば、必要なのはフラグだけです。これが、KDevelop や私が使用した他の IDE での動作です。

または、より多くの制御と自動化が必要な場合は、cmake などのツールを使用することもできます。

于 2013-02-21T23:29:30.490 に答える