Makefileを含むプログラムを1つ試したいのですが、シェルにmake
を配置すると、エラーが発生しました。
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
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
私は暗号ライブラリを見つけようとします:
/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
修正するにはどうすればよいですか?
Libssl-devをインストールして12.10でこれを解決しました。
Sudo apt-get install libssl-dev
ld
は、locate
出力に見られるように存在しないlibcrypto.so
を見つけようとしています。 libcrypto.so.0.9.8
のコピーを作成し、libcrypto.so
という名前を付けることができます。これがldパスです。 (ルートアクセスがない場合は、ローカルパスに配置し、手動でパスを指定できます)