stavo cercando di costruire il primo commit di git cioè commettere e83c516 Quello che ho affrontato è stato un errore di linker come illustrato di seguitoSolving biblioteca di riferimento definito errore durante il collegamento in gcc
$ make
gcc -g -Wall -o update-cache update-cache.o read-cache.o -lssl
/usr/bin/ld: update-cache.o: undefined reference to symbol '[email protected]@libcrypto.so.10'
/usr/bin/ld: note: '[email protected]@libcrypto.so.10' is defined in DSO /lib64/libcrypto.so.10 so try adding it to the linker command line
/lib64/libcrypto.so.10: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make: *** [update-cache] Error 1
$ cat Makefile
CFLAGS=-g -Wall CC=gcc
PROG=update-cache show-diff init-db write-tree read-tree commit-tree cat-file
all: $(PROG)
install: $(PROG)
install $(PROG) $(HOME)/bin/
LIBS= -lssl
init-db: init-db.o
update-cache: update-cache.o read-cache.o
$(CC) $(CFLAGS) -o update-cache update-cache.o read-cache.o $(LIBS)
show-diff: show-diff.o read-cache.o
$(CC) $(CFLAGS) -o show-diff show-diff.o read-cache.o $(LIBS)
Quindi ci sono alcuni errori del linker in questo . Ho provato a cercarlo, ho cercato in vari posti per capirlo usando il messaggio di errore qui sopra con poca fortuna. Principalmente non ci sono stati molti collegamenti da Stackoverflow che hanno aiutato. Sto spiegando il processo che ho preso per capirlo di seguito.