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

标签 c++ g++

我在尝试使用 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

关于c++ - 在 Debian 7.0 中使用 libcrypto 使用 g++ 编译 c++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35139768/

相关文章:

c++ - 为什么这个结构的大小是 24?

C++ "Could not convert ' 类实例'从 'Class (*)()' 到 'Class' ”

带有 Clang 或 GCC 的 Mac 上的 C++11

c++ - C++中变量的声明和定义有什么区别?

c++ - 碱基转换问题

c++ - 为什么 std::algorithms 不能直接在容器上工作?

linux - 减少 libstdc 和 libstdc++ 版本而不将构建服务器移动到旧操作系统

c++ - 为什么这个模板特化在 GCC 中不起作用?

c++ - 为什么在 boost 程序 (boost::filesystem) 中输出 "Bus error: 10"?

其他人使用的单独文件中的 C++ 命名空间