48

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

メイクファイルは次のとおりです。

 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

修正するにはどうすればよいですか?

4

2 に答える 2

137

libssl-devをインストールすることで、12.10でこれを解決しました。

sudo apt-get install libssl-dev
于 2013-01-16T17:54:48.677 に答える
3

ldlibcrypto.so出力に見られるように存在しないものを見つけようとしていlocateます。のコピーを作成してlibcrypto.so.0.9.8、 という名前を付けることができlibcrypto.soます。これを ld パスにします。(ルート アクセス権がない場合は、ローカル パスに配置し、パスを手動で指定できます)

于 2012-12-12T04:39:13.577 に答える