Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ libstatgrab的问题_C++_C_Linker_Shared Libraries_Undefined Reference - Fatal编程技术网

C++ libstatgrab的问题

C++ libstatgrab的问题,c++,c,linker,shared-libraries,undefined-reference,C++,C,Linker,Shared Libraries,Undefined Reference,使用libstatgrab时遇到问题--我在编译时收到以下错误: “libstatgrabTest.cpp:16:对sg\u get\u process\u stats的未定义引用” 我猜这是因为我需要在链接状态下包含它的.so文件——尽管我不确定。正如您在下面看到的,我目前正在包括statgrab.h头文件。我为库执行了配置&&make&&make安装 如果搜索libstatgrab*,我会遇到以下情况: ./usr/local/lib/libstatgrab.so.6.2.3 ./usr/l

使用libstatgrab时遇到问题--我在编译时收到以下错误:

“libstatgrabTest.cpp:16:对sg\u get\u process\u stats的未定义引用”

我猜这是因为我需要在链接状态下包含它的.so文件——尽管我不确定。正如您在下面看到的,我目前正在包括
statgrab.h
头文件。我为库执行了
配置&&make&&make安装

如果搜索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*的另一次搜索将返回以下内容(仅限相关项目):

在编译时,我运行:
g++-g-c libstatgrabTest.cpp

在链接时,我运行:
g++-L/usr/local/libstatgrab.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;
}
//外部库
#包括//libstatgrab(http://www.i-scream.org/libstatgrab/)
//名称空间
使用名称空间std;
内部主(空){
//尝试初始化libstatgrab
int*条目;
sg_过程_统计*系统统计=sg_获取_过程_统计(条目);
//返回
返回0;
}
应该是(在UbuntuNatty上用你的代码狙击手测试):

或者,静态链接:

g++ -L/usr/local/lib -o libstatgrabTest /usr/lib/libstatgrab.a
都在我的盒子上测试过了,有你的确切来源

应该是(在UbuntuNatty上用你的代码狙击手测试):

或者,静态链接:

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

使用您的确切来源在我的盒子上测试了两者。

在“libstatgrab”和“statgrab”之间的变化让我困惑——我之前也包括了-llibstatgrab,它给了我同样的错误。。。谢谢,Bunchlinking会静态地将库包含在可执行文件中吗?也就是说,如果我将(仅)可执行文件移动到第二个系统,我如何确保不需要安装libstatgrab?或者这是不可能的?确实是静态链接。我生成的可执行文件不依赖于“外部”libs(linux和libc之外),“libstatgrab”和“statgrab”之间的更改让我感到困惑——我以前也包含了-llibstatgrab,它给了我同样的错误。。。谢谢,Bunchlinking会静态地将库包含在可执行文件中吗?也就是说,如果我将(仅)可执行文件移动到第二个系统,我如何确保不需要安装libstatgrab?或者这是不可能的?确实是静态链接。我生成的可执行文件不依赖于“外部”libs(linux和libc之外)
g++ -L/usr/local/lib -o libstatgrabTest -lstatgrab
g++ -L/usr/local/lib -o libstatgrabTest /usr/lib/libstatgrab.a