以下のmakefileを使用してプログラム実行可能ファイルを作成しているときに、静的ライブラリをリンクしようとしています。
IDIR =../inc
CC=g++ -g
CFLAGS=-I$(IDIR)
WFLAGS=-Wall -W
OFLAGS=-O3
DLINUX=-D_LINUX
ODIR=obj
LDIR =../lib
LIBS=-lm
_OBJ = testclient.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))
$(ODIR)/testclient.o: testclient.c
$(CC) -c $< $(CFLAGS) -o $@
$(ODIR)/file2.o: file2.c
$(CC) -c $< $(CFLAGS) -o $@
testclient: $(OBJ)
$(CC) -o $@ $^ $(LIBS) -lccn -pthread
.PHONY: clean
clean:
rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~
-lccn
' 'パラメーターの順序の変更から、関数がライブラリーに存在するかどうかのチェック(nm libccn.a
必要な関数をライブラリーに与える)まで、利用可能なすべてを試しましccn_create()
た。返されるエラーは次のとおりです。
obj/testclient.o: In function `main':
/root/testClient/src/testclient.c:91: undefined reference to `ccn_create()'
ライブラリlibccn.a
はにあり/usr/local/lib
ます。また、ディレクトリパスを変更し、-L
フラグを使用してその場所を検索してみました。どちらも動作しません。:( ..どうすればそれを機能させることができるかについてのアイデアはありますか?