本文主要是介绍小议linux中的软链接------顺便谈谈为什么编译有时会出现cannot find -lssl, cannot find -lcrypto,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
linux中的软链接其实是很好理解的, 非常类似于Windows下的快捷方式, 我们来做个简单的实验玩玩:
[taoge@localhost test]$ echo hello > a.txt
[taoge@localhost test]$ ln -s a.txt b.txt
[taoge@localhost test]$ diff a.txt b.txt
[taoge@localhost test]$ ll
total 4
-rw-rw-r-- 1 taoge taoge 6 Nov 4 07:27 a.txt
lrwxrwxrwx 1 taoge taoge 5 Nov 4 07:27 b.txt -> a.txt
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$ echo world >> a.txt
[taoge@localhost test]$ diff a.txt b.txt
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$ echo c++ >> b.txt
[taoge@localhost test]$ diff a.txt b.txt
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$ rm b.txt
[taoge@localhost test]$ cat a.txt
hello
world
c++
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$ ln -s a.txt b.txt
[taoge@localhost test]$ diff a.txt b.txt
[taoge@localhost test]$ rm a.txt
[taoge@localhost test]$ cat b.txt
cat: b.txt: No such file or directory
[taoge@localhost test]$ ll
total 0
lrwxrwxrwx 1 taoge taoge 5 Nov 4 07:29 b.txt -> a.txt (注意, 此处的a.txt在闪动)
[taoge@localhost test]$
根据如上实验和结果, 我们知道, 软链接其实就是快捷方式。 有时候, 我们也把软链接叫符号链接。 大家可以根据上述小实验轻易地总结出软链接的特点, 我就不费口舌了。
下面, 我们继续来看小实验:
[taoge@localhost test]$ ls
main.c
[taoge@localhost test]$ cat main.c
#include <stdio.h>int main()
{printf("hello world\n");return 0;
}
[taoge@localhost test]$ gcc main.c
[taoge@localhost test]$ ./a.out
hello world
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$ ./x
-bash: ./x: No such file or directory
[taoge@localhost test]$ ln -s a.out x
[taoge@localhost test]$ ./x
hello world
[taoge@localhost test]$
看了这个小实验, 我无需多说软连接的用法和用途了。
在实际开发中, 偶尔会遇到cannot find -lssl, cannot find -lcrypto这样的问题, 是什么原因呢? 因为找不到libssl.so库和libcrypto.so这样的库,那怎么办呢? 用软链接吧。 在root权限下进入到/usr/lib中去:
[root@localhost lib]# ll | grep ssl
-rwxr-xr-x 1 root root 216656 Aug 27 2010 libssl3.so
lrwxrwxrwx. 1 root root 15 Mar 24 2015 libssl.so.10 -> libssl.so.1.0.0
-rwxr-xr-x 1 root root 355280 Jun 30 2010 libssl.so.1.0.0
drwxr-xr-x. 3 root root 4096 Mar 24 2015 openssl
[root@localhost lib]#
[root@localhost lib]#
[root@localhost lib]# ll | grep crypto
lrwxrwxrwx. 1 root root 18 Mar 24 2015 libcrypto.so.10 -> libcrypto.so.1.0.0
-rwxr-xr-x 1 root root 1596748 Jun 30 2010 libcrypto.so.1.0.0
[root@localhost lib]#
可以看到, 是有类似库的, 只是文件名不完全吻合, 现在又不想改原来的文件名, 那怎么办呢? 用软链接吧, 搞定。
软链接的本质就是快捷方式,很常用, 更多的讲述似乎没有必要了。
这篇关于小议linux中的软链接------顺便谈谈为什么编译有时会出现cannot find -lssl, cannot find -lcrypto的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!