在 Debian 7.0 中使用 libcrypto 使用 g++ 编译 c++ 程序

Compiling a c++ program with g++ using libcrypto in Debian 7.0

本文关键字:g++ 使用 编译 c++ 程序 libcrypto Debian      更新时间:2023-10-16

我在尝试使用 g++ 进行复制时遇到程序问题。这是命令:

root@server1:/home# g++ -o ssh2main ssh2main.cpp ssh2connect.cpp -static -lssh2 -L/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 -lcrypto -ldl -lz -Wno-write-strings;

这是我得到的输出:

/usr/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status

我已经运行了apt-get libcrypt*,我看到它已安装。

root@server1: locate crypt
/lib/libcryptsetup.so.4
/lib/libcryptsetup.so.4.2.0
...
/lib/x86_64-linux-gnu/libcrypt-2.19.so
/lib/x86_64-linux-gnu/libcrypt.so.1
/lib/x86_64-linux-gnu/libgcrypt.so.11
/lib/x86_64-linux-gnu/libgcrypt.so.11.7.0
/lib/x86_64-linux-gnu/libgcrypt.so.20
/lib/x86_64-linux-gnu/libgcrypt.so.20.0.3
...
/var/lib/dpkg/info/cryptsetup-bin.list
/var/lib/dpkg/info/cryptsetup-bin.md5sums
/var/lib/dpkg/info/libcryptsetup4.list
/var/lib/dpkg/info/libcryptsetup4.md5sums
/var/lib/dpkg/info/libcryptsetup4.postinst
/var/lib/dpkg/info/libcryptsetup4.postrm
/var/lib/dpkg/info/libcryptsetup4.shlibs
/var/lib/dpkg/info/libcryptsetup4.symbols
/var/lib/dpkg/info/libgcrypt11:amd64.list
/var/lib/dpkg/info/libgcrypt11:amd64.md5sums
/var/lib/dpkg/info/libgcrypt11:amd64.postinst
/var/lib/dpkg/info/libgcrypt11:amd64.postrm
/var/lib/dpkg/info/libgcrypt11:amd64.shlibs
/var/lib/dpkg/info/libgcrypt11:amd64.symbols
/var/lib/dpkg/info/libgcrypt20-dev.list
/var/lib/dpkg/info/libgcrypt20-dev.md5sums
/var/lib/dpkg/info/libgcrypt20:amd64.list
/var/lib/dpkg/info/libgcrypt20:amd64.md5sums
/var/lib/dpkg/info/libgcrypt20:amd64.postinst
/var/lib/dpkg/info/libgcrypt20:amd64.postrm
/var/lib/dpkg/info/libgcrypt20:amd64.shlibs
/var/lib/dpkg/info/libgcrypt20:amd64.symbols
/var/lib/dpkg/info/libk5crypto3:amd64.list
/var/lib/dpkg/info/libk5crypto3:amd64.md5sums
/var/lib/dpkg/info/libk5crypto3:amd64.postinst
/var/lib/dpkg/info/libk5crypto3:amd64.postrm
/var/lib/dpkg/info/libk5crypto3:amd64.shlibs
/var/lib/dpkg/info/libk5crypto3:amd64.symbols

问题是,在CentOS 5.5, 5.7它可以毫无问题地工作。我做错了什么?我该如何解决这个问题?

谢谢。

你所看到的是GNU的libcrypt,而不是libcrypto

安装libssl-dev包。我假设 ubuntu 和 debian 中的软件包名称是相同的。否则,您需要为您的平台安装相应的ssl-dev PKG

/usr/bin/ld: cannot find -lcrypto    

我已经运行了apt-get libcrypt*,我看到它已安装。

试试-lcrypt

我还注意到您没有链接路径目录的 -L。默认设置中的路径是否正确?