链接kstat库错误

时间:2016-04-02 15:28:56

标签: c compiler-errors solaris-10 kstat

您好我一直在尝试将solaris服务器上的kstat库链接到类的项目。要做到这一点,我把它放在将使用它的标题的开头

#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库。我尝试在make文件中创建part3.o自己的对象进行创建,并在该文件中链接kstat,但它给了我错误的分隔符错误。

1 个答案:

答案 0 :(得分:0)

您必须找到此库的文件(例如kstat.akstat.so)及其标题。然后将路径分别传递给标题和lib -I-L

例如:$CC -I /usr/include/kstat -L /usr/lib/kstat files -lkstat