0

こんにちは、クラスのプロジェクト用に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 は、kstat を使用するファイルである part3.o を含む親ファイルです。しかし、私はエラーが発生します

/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 をリンクしようとしましたが、セパレーターが見つからないというエラーが発生しました。

4

1 に答える 1

0

このライブラリのファイル (kstat.aまたは などkstat.so) とそのヘッダーを見つける必要があります。次に、ヘッダーと lib へのパスを-Iそれぞれと で渡し-Lます。

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

于 2016-04-02T15:33:33.103 に答える