Ich möchte ein Programm ausprobieren, das ein Makefile enthält, aber wenn ich es ablege make
In der Shell war der Fehler:
g++ -g -DaUNIX -I../../acroname/aInclude -I../../acroname/aSource -Wl,-rpath,. unix_aLaserDemo_Data/aLaserDemo.o unix_aLaserDemo_Data/acpLaser.o -lpthread -lcrypto -lssl -o ../../acroname/aBinary/aLaserDemo
/usr/bin/ld: cannot find -lcrypto
collect2: ld returned 1 exit status
Hier ist das Makefile:
CC = g++
CFLAGS = -DaUNIX -I../../acroname/aInclude -I../../acroname/aSource
LFLAGS = -Wl,-rpath,.
SRC = ../../acroname/aSource
BIN = ../../acroname/aBinary
LIBS = -lpthread -lcrypto -lssl \
#LIBS = -lpthread\
-L../../acroname/aBinary -l aUtil -l aIO
OBJ = unix_aLaserDemo_Data
.PHONY : app
app : $(OBJ) $(BIN)/aLaserDemo
$(OBJ) :
mkdir $(OBJ)
$(BIN)/aLaserDemo : $(OBJ)/aLaserDemo.o $(OBJ)/acpLaser.o
$(CC) -g $(CFLAGS) $(LFLAGS) $^ $(LIBS) -o $@
$(OBJ)/aLaserDemo.o : aLaserDemo.cpp
$(CC) -c $(CFLAGS) $< -o $@
$(OBJ)/acpLaser.o : $(SRC)/acpLaser.cpp $(SRC)/acpLaser.h
$(CC) -c $(CFLAGS) $< -o $@
.PHONY : clean
clean :
rm -rf $(OBJ)
rm -f $(BIN)/aLaserDemo
Ich versuche, die Kryptobibliothek zu finden:
/usr/lib/i486/libcrypto.so.0.9.8
/usr/lib/i586/libcrypto.so.0.9.8
/usr/lib/i686/cmov/libcrypto.so.0.9.8
/usr/lib/libcrypto.so.0.9.8
Was soll ich tun, um es zu beheben?
Woher wissen wir, dass es 64 Bit oder 32 Bit ist? Ich bin Anfänger in Linux.
– Limavolt
11. Dezember 2012 um 1:01 Uhr
Sie müssen den Entwicklungscode (Paket) für die Kryptobibliothek installieren. Konkret brauchen Sie
/usr/lib/libcrypto.so
(kein numerisches Suffix) zeigt auf (symlinked to)/usr/lib/libcrypto.so.0.9.8
. Der Verknüpfungsprozess sucht nach einer Namensendung.so
; die Laufzeit sucht nach dem Namen mit dem versionierten Suffix. Dasdevel
Paket stellt sicher, dass die richtigen Links für die Entwicklung mit der Kryptobibliothek erstellt werden; was du im Moment hast, ist nur für die Laufzeit.– Jonathan Leffler
11. Dezember 2012 um 1:03 Uhr
du kannst tun
uname -a
um zu prüfen, ob es 64bit ist. Auch tunsudo apt-get install libssl-dev
Entwicklungspaket zu installieren.– perreal
11. Dezember 2012 um 1:03 Uhr
Leider habe ich keinen Root-Zugriff. Ich versuche zu #LIBS = -lpthread -lcrypto -lssl \ und ändere zu LIBS = -lpthread\ aber es treten viel mehr Fehler auf
– Limavolt
11. Dezember 2012 um 1:08 Uhr
Wenn ich uname -a mache, ist das Ergebnis: Linux pc4268 2.6.20-16-generic #2 SMP Sun 23. September 19:50:39 UTC 2007 i686 GNU/Linux
– Limavolt
11. Dezember 2012 um 1:11 Uhr