J'ai une structure de répertoireY compris une bibliothèque statique dans makefile
tronc
--lib - libParser.a
--objs
--src
- -Makefile
J'ai le makefile suivant
CRYPTOLIB_TARGET = cryptolib.a
LOCALLIBS = ./objs
LOCALLIBS_IMAGE = ./cryptolib.a
CC = gcc
AR = ar
DEBUG_FLAGS =
LDEFSECOM_LOG_VERSION = -DSECOM_LOG_VERSION
CMPL_TIME_MACROS = -DENBL_DEBUG_PRINTF $(LDEFSECOM_LOG_VERSION)
ALLWARN =
ALL_INCS = -I./src/INCLUDE
LIBS = -lrt -laio -lrt -lpthread -lm -lpq -ldl
LINK = $(CC) $(DEBUG_FLAGS) $(CMPL_TIME_MACROS) $(ALLWARN) $(ALL_INCS) $(LIBS) -c
default = CRYPTOLIB_TARGET
CRYPTOLIB_OBJ = \
$(LOCALLIBS)/AES_crypt.o \
$(LOCALLIBS)/bigdigits.o \
$(LOCALLIBS)/DataEncryption.o \
$(LOCALLIBS)/SiaEncryption.o
$(CRYPTOLIB_TARGET): $(CRYPTOLIB_OBJ)
$(AR) r $(CRYPTOLIB_TARGET) $(CRYPTOLIB_OBJ)
$(LOCALLIBS)/AES_crypt.o : \
src/AES_crypt.c
mkdir -p ./objs
$(LINK) src/AES_crypt.c -o $(LOCALLIBS)/AES_crypt.o
$(LOCALLIBS)/bigdigits.o : \
src/bigdigits.c
$(LINK) src/bigdigits.c -o $(LOCALLIBS)/bigdigits.o
$(LOCALLIBS)/DataEncryption.o : \
src/DataEncryption.c
$(LINK) src/DataEncryption.c -o $(LOCALLIBS)/DataEncryption.o
$(LOCALLIBS)/SiaEncryption.o : \
src/SiaEncryption.c
$(LINK) src/SiaEncryption.c -o $(LOCALLIBS)/SiaEncryption.o
clean:
rm -rf objs
rm -rf cryptolib.a
Je souhaite inclure libParser.a dans la bibliothèque de sortie que je crée, mais je ne suis pas sûr de savoir comment procéder. Pouvez-vous s'il vous plaît me donner les pointeurs afin que je puisse inclure la bibliothèque (libParser.a) et créer cryptolib.a comme une bibliothèque de sortie finale.
Voulez-vous une règle qui peut construire 'libParser.a', ou voulez-vous simplement supposer qu'elle existe? Et savez-vous comment construire 'cryptolib.a' comme vous le souhaitez sur la ligne de commande? – Beta
Je vais supposer qu'il se termine donc je ne veux pas le construire. Oui, je peux créer cryptolib.a mais je veux lier libParser.a avec cryptolib. J'ai mis une nouvelle ligne ici LIBS = -l./lib/libParser.a -lrt -laio -lrt -lpthread -lm -lpq -ldl, j'ai pu lier la librairie après avoir mis cette ligne. Pouvez-vous suggérer s'il y a d'autres moyens pour la même chose? – Rohit