我正在编写一个应用程序来测试pbs_connect()是否正常工作。这是我的代码:
#include <stdio.h>
#include "/usr/include/torque/pbs_ifl.h"
#include "/usr/include/torque/pbs_error.h"
#include <pbs_config.h>
#include "libpbs.h"
int main() {
printf("Hello world\n");
int server = pbs_connect("inferno.local");
//batch_status * stat1 = pbs_statserver(server, NULL, NULL);
pbs_errno = 0;
batch_status * stat1 = PBSD_status(server, 21, (char *)"", NULL, NULL);
printf("fd: %d\n", server);
//printf("text: %s\n", stat1->text);
//printf("name: %s\n", stat1->name);
printf("name: %d\n", pbs_errno);
return 0;
}
//compiled using - //g++ -o test test.c -L/usr/lib64 -ltorque
我明白了:
# g++ -o test test.c -L/usr/lib64 -ltorque
test.c:7:24: error: pbs_config.h: No such file or directory
test.c:8:20: error: libpbs.h: No such file or directory
test.c: In function 'int main()':
test.c:19: warning: deprecated conversion from string constant to 'char*'
test.c:24: error: 'PBSD_status' was not declared in this scope
可以在此处找到包含PBSD_status的源文件: https://github.com/adaptivecomputing/torque/blob/4.2.7/src/lib/Libifl/PBSD_status.c
我需要在g ++命令中包含哪些内容才能使其正常工作?我已经检入了/ usr / lib64 /,并且没有libpbs.h或pbs_config.h。如果他们不在那里,他们会在哪里?
答案 0 :(得分:1)
就您的标题而言,您遇到了已安装标头和未安装标头之间的区别。从本质上讲,软件项目不会在该项目中安装每个标头,而只安装API的相关标头。这两个不在API中,因此未安装。你需要参考他们的路径。
至于在库中包含PBSD_status(),您可以编辑Libpbs的Makefile以包含PBSD_status()的源文件然后重建,或者您可以链接到librcl库,该库位于src / lib /中Libifl来自项目的基本目录。