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 回答