1

プロジェクトに .so ライブラリを追加しようとしていますが、メイクファイルに関する知識が非常に限られているため、残念ながらチュートリアルを理解できません...

これが私のプロジェクトの構造です:

/project
    ex1.c
    ex1.h
    ex1_client.c
    ex1_client.h
    /lib
        libmylib.so

2 つの実行可能ファイルである ex1 と ex1_client で mylib を使用する必要がありますが、makefile に含めることができません (.c​​ ファイルに含める方法がわからない可能性があると考えています...)

私のメイクファイルは次のとおりです。

CC= gcc
CFLAGS= -Wall -pedantic -std=c99 -pthread
RM= rm -f
LFLAGS= -L./lib
LIBS= -lmylib
#Don't know if the following is necessary
LD_LIBRARY_PATH= ./lib

all: ex1 ex1_client

ex1: ex1.o
    $(CC) $(CFLAGS) -o ex1 ex1.o $(LFLAGS) $(LIBS)

ex1_client: ex1_client.o
    $(CC) $(CFLAGS) -o ex1_client ex1_client.o $(LFLAGS) $(LIBS)

ex1.o: ex1.c ex1.h
    $(CC) $(CFLAGS) -c ex1.c ex1.h

ex1_client.o: ex1_client.c ex1_client.h
    $(CC) $(CFLAGS) -c ex1_client.c ex1_client.h

clean:
    $(RM) *.o ex1 ex1_client *~

動作しません - mylib がどこにあるかわからないようです。

それに加えて、.c ファイルに mylib について何も書きませんでした... つまり、#include はありません。おそらくすべての問題の1つです。

ライブラリとメイクファイルに関する説明は、私には理解するのが本当に難しいようです...そして、若いフランス人開発者の学校で学んだ英語を許してください;)

4

1 に答える 1

3

mylib.soそうでなけれlibmylib.soば、リンカーはそれを見つけることができません。

(間違った仮定をするのではなく、システムに既にインストールされているライブラリを調べてみるのはどうですか?)

于 2013-03-10T14:02:36.577 に答える