3

libsal.a という名前の C ライブラリをネットからダウンロードし、そのライブラリの API にアクセスします。main.c に #include という名前でヘッダー ファイルを含めます。次のコマンドを使用してコンパイルします。

gcc -L /home/traana/Desktop/opensal-1.0.0/libsal.a main.c

しかし、コンパイル時に次のエラーが発生します

main.c:3:17: fatal error: sal.h: No such file or directory
compilation terminated.

これを正しく行うにはどうすればよいですか?

4

3 に答える 3

7

私はあなたが設定する必要がある3つの議論があると信じています:

-I <include directory>
-L <library directory>
-l <library name>

インクルードディレクトリは、ヘッダーファイルの場所になります。ライブラリディレクトリはライブラリの場所(.aまたは.so)になり、ライブラリ名はライブラリファイルの名前になります。先頭の「lib」プレフィックスまたはその拡張子は含まれません(つまり、-llibsalではなく-lsal)。 .a)。

于 2012-07-25T12:11:29.663 に答える
7

ソースをコンパイルするとき、関連するのはライブラリではなく、インクルード ファイルです。そのため、gcc にそれらがどこにあるかを伝える必要があります。

gcc -c -I/home/traana/Desktop/opensal-1.0.0/include main.c

次に、アプリケーションを次のようなものにリンクします

gcc -L/home/traana/Desktop/opensal-1.0.0 -lsal main.o 
于 2012-07-25T12:00:48.250 に答える
0

*.h が /home/traana/Desktop/opensal-1.0.0 にある場合

試す

 gcc -I /home/traana/Desktop/opensal-1.0.0 -L /home/traana/Desktop/opensal-1.0.0 main.c -lsal
于 2012-07-25T11:58:30.810 に答える