0
OpenSSL與valgrind無法正常工作,除非您使用特定的選項構建它,所以我再次構建OpenSSL以便我可以輕鬆地調試程序。問題是,每次構建程序時,都會鏈接到我不想要的OpenSSL庫。我的makefile文件打印出了不少,但兩行最重要的是:無法鏈接到特定的OpenSSL庫(Linux Mint 13)
cc /usr/local/ssl/lib/libcrypto.so.1.0.0 /usr/local/ssl/lib/libssl.so.1.0.0 -L/opt/local/lib -shared -o bin/libcbitcoin-crypto.2.0.so build/CBOpenSSLCrypto.o
cc build/testCBNodeFull.o -L/home/matt/Desktop/cbitcoin/bin -lcbitcoin.2.0 -lcbitcoin-network.2.0 -lcbitcoin-storage.2.0 -lcbitcoin-threads.2.0 -lcbitcoin-logging.2.0 -lcbitcoin-crypto.2.0 -lcbitcoin.2.0 -lcbitcoin-file-ec.2.0 -lcbitcoin-rand.2.0 -L/opt/local/lib -lpthread -levent_core -levent_pthreads /usr/local/ssl/lib/libcrypto.so.1.0.0 -o bin/testCBNodeFull
至於建議其他地方我指定OpenSSL庫我想要的精確位置。然而ldd bin/testCBNodeFull
給了我這樣的:
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
有顯然沒有錯,我要鏈接到該庫:
$ file bin/testCBNodeFull
bin/testCBNodeFull: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xd9472ecc11e12dc66d165c807a5dbe31fd461cf2, not stripped
$ file /usr/local/ssl/lib/libcrypto.so.1.0.0
/usr/local/ssl/lib/libcrypto.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xb75602dc478ae55576e21aac5251b915b1653e73, not stripped
兩個編譯爲X86-64,你可以看到。也許有一種工具可以讓我更改可執行文件共享庫的位置?
謝謝,這工作...除了我使用-DPURIFY,OpenSSL仍然給valgrind錯誤。 :-( –