Я пишу приложение, чтобы проверить, работает ли 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. Где бы они были, если бы их там не было?
Что касается ваших заголовков, вы сталкиваетесь с разницей между установленными и неустановленными заголовками. По сути, программный проект не устанавливает все заголовки внутри этого проекта, а только релевантные для API. Эти два других отсутствуют в API и, следовательно, не установлены. Вам нужно сослаться на их путь.
Что касается включения в библиотеку PBSD_status (), вы можете отредактировать Makefile для Libpbs, включив в него исходный файл для PBSD_status (), а затем перестроить, или же вы можете связать библиотеку libifl, которая находится в src / lib / Libifl из базовый каталог для проекта.