1

libstatgrabの使用に問題があります-コンパイル時に次のエラーが発生します。

"libstatgrabTest.cpp:16: undefined reference to sg_get_process_stats"

確かではありませんが、リンク状態で.soファイルを含める必要があるためだと思います。以下に示すように、私は現在statgrab.hヘッダーファイルをインクルードしています。私configured && make && make installは図書館のために演奏しました。

libstatgrab *を検索すると、次のことがわかります。

./usr/local/lib/libstatgrab.so.6.2.3
./usr/local/lib/libstatgrab.la
./usr/local/lib/libstatgrab.so.6
./usr/local/lib/libstatgrab.a
./usr/local/lib/libstatgrab.so.6.2.2
./usr/local/lib/libstatgrab.so
./usr/local/lib/pkgconfig/libstatgrab.pc

statgrab *をもう一度検索すると、次のようになります(関連アイテムのみ)。

./usr/local/bin/statgrab
./usr/local/include/statgrab_deprecated.h
./usr/local/include/statgrab.h

コンパイル時に、次のコマンドを実行します。g++ -g -c libstatgrabTest.cpp

リンク時に、次のコマンドを実行します。g++ -L/usr/local/lib libstatgrab.o -o libstatgrabTest

私が間違っていることについて何か考えはありますか?内のコードをlibstagrabTest.cpp以下に示します。

// external libraries
#include <statgrab.h> // libstatgrab (http://www.i-scream.org/libstatgrab/)

// namespace
using namespace std;

int main(void) {
  // try to initalize libstatgrab

  int * entries;
  sg_process_stats * systemStats = sg_get_process_stats(entries);

  // return
  return 0;
}
4

1 に答える 1

1
g++ -L/usr/local/lib libstatgrab.o -o libstatgrabTest

(Ubuntu Nattyのコードスニッパーでテスト)する必要があります:

g++ -L/usr/local/lib -o libstatgrabTest -lstatgrab

または、静的にリンクするには:

g++ -L/usr/local/lib -o libstatgrabTest /usr/lib/libstatgrab.a

あなたの正確な情報源を使って、私の箱で両方をテストしました。

于 2011-11-21T00:14:16.400 に答える