我想在gcc程序中使用openssl,但它不工作。如何在GCC中使用OpenSSL?
g++ server.cpp /usr/lib/libssl.a -o server
给出了一条错误消息,与-l
选项中的任何操作一样。我必须在命令行上键入与openssl链接的内容?文件/usr/lib/libssl.a
存在,但仍然收到链接器错误no such function MD5() exists
。
我想在gcc程序中使用openssl,但它不工作。如何在GCC中使用OpenSSL?
g++ server.cpp /usr/lib/libssl.a -o server
给出了一条错误消息,与-l
选项中的任何操作一样。我必须在命令行上键入与openssl链接的内容?文件/usr/lib/libssl.a
存在,但仍然收到链接器错误no such function MD5() exists
。
不知道你看到的确切的错误,很难提供一个确切的解决方案。这是我最好的尝试。
根据您提供的信息,听起来好像链接程序失败,因为它无法在libssl.a中找到对md5函数的引用。我相信这个函数实际上是在libcrypto中,所以你可能需要指定这个库。
g++ server.cpp -L/usr/lib -lssl -lcrypto -o server
您或他人可以发现本文developerWorks文章有帮助:
它描述了最你需要知道的事情才能在OpenSSL和C/C++中脱颖而出。如果你发现你遵循大部分相同的步骤,它可能会帮助你看到需要做什么。
祝你好运。
这三个链接是相同的。 – 2016-12-06 10:05:58
在Eclipse IDE中选择项目属性 - > C/C++编译 - >设置GCCÇ连接器(从工具设置) - >添加到库搜索路径(-L)
/usr/lib目录-lssl -lcrypto
在接受答案的上方,我不能让编译OpenSSL的例子为AES-CCM:
https://github.com/openssl/openssl/blob/master/demos/evp/aesccm.c
为了使它工作,我需要添加两两件事:
-ldl
-pthread
(添加直接与-lpthread库是not recommended)
我看不出使用-l的在您发布的te命令中。不要在大写的情况下发布你的问题 - 呼喊是粗鲁的。 – 2009-12-12 17:01:56
像'g ++ server.cpp -L/usr/lib -lssl -o服务器'应该这样做。发布确切的错误,你得到的和有人可以帮助。我第二次尼尔在呐喊声中;) – 2009-12-12 17:03:26
你缺少'/ usr/lib/libcrypto.a'。 'libcrypto'提供'libssl'使用的加密。因为LD是单通道liker:'/usr/lib/libssl.a/usr/lib/libcrypto.a',所以按照这个顺序添加这两个。 – jww 2015-09-17 23:52:18