0

私の会社の(他の人の)既存のプロジェクトに拡張機能を追加しています。今度は、ブーストのような既存のライブラリをインポートしたいと思います。既存のプロジェクトのデバッグにnetbeansを使用しています。ライブラリをNetBeansにインポートするには、通常2つの手順に従います。

  1. ディレクトリを含める
  2. リンカー->ライブラリの追加。

ただし、既存のプロジェクトを右クリックすると、[リンカー]->[ライブラリの追加]のオプションが表示されません。(そのオプションがあるので、私はディレクトリを含めましたが)。

誰かがリンカーを介して既存のプロジェクトにライブラリを追加する方法について教えてもらえますか?私のプロジェクトはC++です

4

1 に答える 1

1

unix/linux バリアントを使用していると仮定します。

ヘッダーとライブラリ リンクのディレクトリは、2 つの異なるものです。インクルード ディレクトリには必要なヘッダーがありますが、コンパイル後にライブラリ (*.a、*.so など) にある実際のコンパイル済みコードも必要になる場合があります。

たとえば、pthreads を使用している場合、含める必要があるヘッダーとは別に、libpthread も必要です。

リンクするときは、pthread を使用してリンクするためのフラグを指定する必要があります。たとえば、-lpthread です。UNIX システムでは、ライブラリを見つけるために find または locate を使用して検索できます。私の場合、その

/usr/lib/libpthread.so

したがって、

gcc myfile.c -lpthread -o myfile

myfile.c を pthread ライブラリにリンクします

一方、

gcc -L/usr/local/lib/

gcc に /usr/local/lib の下を調べて (ヘッダーではなく) ライブラリを検索するように指示します。

ヘッダーがどこにあるかを netbeans に伝えるだけでは十分ではありません。リンク エラーが発生する可能性があります。適切なフラグを使用する可能性があるため、ライブラリがどこにあるかをネットビーンズに伝えるだけで十分な場合があります。それでも失敗する場合は、ライブラリ フラグとパスの両方を指定する必要があります。

または、このプロセスを自動化し、IMO をもう少し制御する cmake、make などのツールを使用することもできます。

リンク 1 を参照 リンク 2 を参照

于 2013-02-20T00:26:09.013 に答える