我已经从源代码(一个故意旧版本;用./config && make && make test
构建)构建OpenSSL,并且宁愿使用我已经构建而没有执行make install
来链接我的程序。将OpenSSL库链接到程序
多数民众赞成失败的命令是:
gcc -Wall -Wextra -Werror -static -Lopenssl/openssl-0.9.8k/ -lssl -lcrypto
-Iopenssl/openssl-0.9.8k/include -o myApp source1.o source2.o common.o`
而且我收到了一系列类似的错误:
common.c:(.text+0x1ea): undefined reference to `SSL_write'
这让我觉得有一些时髦与我的OpenSSL。如果我忽略-Lopenssl/openssl-0.9.8k/
从我的命令,错误更改为暂时无法:
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
我是不是编译OpenSSL的错误?或者我该如何最好地解决这个问题?
这是`-lssl -lcrypto`,需要在最后。当链接器扫描库时,只链接已经存在未定义引用的函数。所以你需要把“消费”对象放在链接行的开始处,并在末尾放置“提供”对象。 – caf 2010-12-06 01:35:40
我总是很奇怪接受我自己的答案。我现在会切换它。 – mrduclaw 2014-03-29 15:10:50
它对llvm族有什么不同? – saruftw 2017-06-13 19:05:26