mrd*_*law 16 linux gcc openssl
我已经从源代码构建了OpenSSL(一个故意的旧版本;用它构建./config && make && make test
)并且更愿意使用我构建的内容而不用make install
链接我的程序.
失败的命令是:
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`
Run Code Online (Sandbox Code Playgroud)
我收到一系列类似的错误:
common.c:(.text+0x1ea): undefined reference to `SSL_write'
Run Code Online (Sandbox Code Playgroud)
这让我觉得我的OpenSSL有点时髦.如果我-Lopenssl/openssl-0.9.8k/
从命令中省略,则错误将更改为无法:
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
Run Code Online (Sandbox Code Playgroud)
我是否错误地编译了OpenSSL?或者我该如何最好地解决这个问题?
mrd*_*law 27
愚蠢的"Linux-isms"再次罢工!很显然,我需要改变我的命令,使得在-L
与-l
东西是在年底一样(尽管什么man gcc
似乎表明):
gcc -Wall -Wextra -Werror -static -o myApp source1.o source2.o common.o -Lopenssl/openssl-0.9.8k/ -lssl -lcrypto -Iopenssl/openssl-0.9.8k/include
你为什么不想用make install
?如果您之前将生成的二进制文件传递给它,它可以在您想要的目录中复制它./configure --prefix $HOME/target_library_install_directory
如果使用这一招用每次编译和安装库,你可以再加入目标目录的LIBRARY_PATH
环境变量,并避免使用-l选项.
归档时间: |
|
查看次数: |
39711 次 |
最近记录: |