0

動的にリンクされたライブラリを作成しました。唯一の問題は、メイン プログラムがヘッダー ファイルを認識しないことです。ヘッダー ファイルは、メイン プログラムとは別のフォルダーにあります。私も試し#include "myheader.h"ました#include "/folder/dir/myheader.h"

これが私の.hの構成です

    extern int afunction(int,int);
    extern int afunction(int,int);

これまでのところ、このコードは機能します

    gcc -fPIC -c filename1.c
    gcc -fPIC -c filename2.c

    gcc -shared -o libMylib.so filename1.o filename2.o

次に、lib を にコピーしてから/usr/local/lib

    gcc main.c -L. -lMylib -o exeName -ldl

そして私は得る

    " myheader.h : no such file or directory.

これが私のディレクトリ構造です:

directory1 ----------------folder1(メインプログラム.c)

directory1 ----------------folder2(myheader.h と pgm の関数)

すべてのコードを作成し、最終段階にいるので、正しい方向へのプッシュが役立ちます。

4

2 に答える 2

3

が必要gcc ... -I<some directory to myheader.h>です。これにより、コンパイラはヘッダー ファイルを見つけることができます。

于 2012-05-03T22:46:05.020 に答える
1

現在のプログラムと同じフォルダーに lib ヘッダー ファイルを配置できます。

または@Ed Healが言ったように..-I<path>インクルードヘッダーフォルダーに追加します。

于 2012-05-04T08:36:01.037 に答える