Ссылка на ошибку библиотеки kstat
Привет, поэтому я пытался связать библиотеку kstat на сервере Solaris для проекта для класса. чтобы сделать это, я положил это в начале заголовка, который будет использовать его
#ifdef HAVE_KSTAT
#include <kstat.h>
#endif
и мой make-файл выглядит так
CC=gcc
#CC=gcc -Wall
mysh: sh.o Funcs.o mp3.o get_path.o part3.o main.c
$(CC) -g -pthread -lkstat main.c sh.o Funcs.o mp3.o get_path.o part3.o -o mysh
Funcs.o: Funcs.h Funcs.c
$(CC) -g -c Funcs.c
mp3.o: mp3.h mp3.c
$(CC) -g -c mp3.c
sh.o: sh.c sh.h
$(CC) -g -c -pthread -DHAVE_KSTAT sh.c
get_path.o: get_path.c get_path.h
$(CC) -g -c get_path.c
clean:
rm -rf sh.o get_path.o mysh Funcs.o part3.o
sh.o является родительским файлом, который включает part3.o, который является файлом, использующим kstat. Однако я получаю ошибку
/usr/bin/ld: cannot find -lkstat
collect2: error: ld returned 1 exit status
а также
part3.h:8:19: fatal error: kstat.h: No such file or directory
#include <kstat.h>
^
compilation terminated.
make: *** [sh.o] Error 1
что я сделал не так, как правильно связать библиотеку kstat. Я попытался сделать part3.o своим собственным объектом для создания в файле make и связать в нем kstat, но он дал мне разделитель ошибки.
1 ответ
Вы должны найти файлы этой библиотеки (например, kstat.a
или же kstat.so
) и его заголовки. Затем передайте пути к заголовкам и lib с -I
а также -L
соответственно.
Например: $CC -I /usr/include/kstat -L /usr/lib/kstat files -lkstat