linux依赖库(linux 依赖库)-编程知识网

linux下qt如何把依赖库放进可执行文件中?

带着需要的.so包一起拷贝过去就可以,要知道需要那些库可以执行 obj-dump | grep NEED +你的程序名字。一般需要libQtCore.so libQtGui.so libQtNetwork.so这几个。 也可静态编译你的程序,make时候加static.

linux动态库和静态库的区别?

动态链接库和静态链接库一般是编译集成一系列的接口(函数)

在程序源代码编译完成后通过编译器编译并通过链接器与这些库进行链接

动态链接库与静态链接库的区别在于链接器在进行链接时静态库会被直接编译进程序里

而动态链接库并不会,我们这里将这些链接库称作依赖(动态库和静态库)

程序的运行需要这些依赖,程序在静态链接后该程序本身便已包含该依赖

而动态链接后的程序本身本不包含该依赖,这些依赖需要执行者自行安装进操作系统(动态库、运行时库)

程序运行时会动态地加载这些库

linux上动态库一般的后缀后为.so

静态库一般的后缀为.a

由于静态链接会直接将库编译进程序里所以静态编译后的程序相较于动态链接所要大

这就是因为静态链接会将链接库编译进程序里的原因,所以占用就要大了

出于这种原因,静态库不易于维护与更新,如果链接库中有实现有bug等需要更新则需要更新整个程序,因为静态库被编译进程序中了

但动态库就没有这种情况了,因为动态库是程序运行时动态加载的,所以我们只需要更新动态库而不需要更新所有依赖该库的程序(软件)

另一方面,很多程序的开发都会使用到相同的链接库,也就是很多程序(软件)会有相同的依赖

如果将这些依赖全部静态编译的话将会造成存储资源占用过多而造成资源浪费

而使用动态库的方式这些程序(软件)则可以共享一个链接库,而不需要每个程序都带一个链接库,这样就大大地减少了存储资源占用空间

linux怎么挂载windows共享文件夹?

操作步骤:

1、在尝试访问Windows共享之前,需要首先确认samba-client已经安装了。最简单的方式是命令行查询“rpm -qa | grep samba-client”,当然也可以使用“yum”工具查询, 如“yum info samba-client”或“yum list samba-client”之类的命令。

2、如果samba-client没有安装,就需要使用命令“yum install samba-client”安装一下,yum会自动安装samba-client所需的相关依赖库,安装时选择Y就行了。

针对常见的Debian Linux发行版,如Ubuntu或CentOS,也可以使用“sudo apt-get install smbclient”和“sudo apt-get install smbfs”安装相应的共享访问工具。

3、准备停当,就可以尝试访问Windows共享文件夹了。我们可以首先使用“smbclient -L //IP地址 -U 用户名”查看一下该用户共享权限下的共享情况。其中不带“$”的那个,就是我们可以访问的共享文件夹了,其中“-U”是用来指定查询共享权限的用户名的。

4、Linux将共享文件夹也是当作磁盘资源对待的,因此需要使用mount工具将其挂载到本地文件空间才可以访问,这一点就像Windows常用的网络磁盘映射是一样的。

因此,首先我们需要创建一个挂载点,也就是在本地目录空间中创建一个挂载目录,如“mkdir -p /mnt/MYSHARE”。

挂载点创建之后,就可以使用mount命令挂载共享文件夹了,“mount -t cifs -o user=用户名称,password=共享密码,iocharset=utf8,codepage=cp936 //共享IP地址或NetBIOS名称/共享目录”,其中cifs使用Linux常用的网络文件类型,也可以使用smbfs,以系统可以识别为准,如Ubuntu常见命令就是“sudo mount -t smbfs -o user=用户名称,password=共享密码,iocharset=utf8,codepage=cp936 //共享IP地址或NetBIOS名称/共享目录”。“-o”表示挂载参数,常见的是需要提供共享的用户名和密码,另外需要注意的是iocharset和codepage,这两个参数是用来解决系统之间的字符编码转换的,如果出现乱码的情况,是需要调整这两个参数的,针对简体中文,使用utf8和cp936一般都可以解决问题,关于字符编码已经超出了本经验的范围。

挂载完成之后,就可以像使用本地文件目录一样访问Windows共享文件夹和文件了。

5、当然,Linux也有图形化的资源管理器,挂载之后,资源管理器也可以正常访问的。进入Linux桌面,打开“我的电脑”。

6、然后就可以像浏览本地文件一样,浏览共享的Windows文件夹和文件了,与命令行并没有太多的差异。

7、Windows共享资料使用完毕之后,也可以将其使用umount命令卸载,卸载就很简单了,直接使用“umount /mnt/MYSHARE”就可以了,其中MYSHARE是就是我们前面创建的挂载点了。

如果以后不需要,也可以将挂载点删除的。

8、挂载的Windows共享文件夹在Linux重启之后就会消失的,如果还要使用,是需要重新挂载的。

linux依赖关系类型?

用户依赖,工作组依赖,还有权限依赖。

在linux中home目录的作用是是什么?

home目录在Linux称为主目录,在该目录下面存储的是每个用户的目录。也会是每个用户的数据是存储在该目录下面的一个子目录中。

我们知道Linux是一个多用户的操作系统,也就是在操作系统中可以创建多个用户。通常在创建用户的时候就会在home目录下面自动创建一个同名的子目录,也就是该用户的主目录。而该新建的用户只有对该子目录有全量的读写权限。

总结来说,home目录是存储每个用户的主目录,用户的主目录存储用户独有的数据。

在Linux中每个目录都有其作用,下面我们列出主要目录的具体作用。

/bin – 用户基础二进制文件目录

目录/bin是根目录的一级子目录。在该目录中包含着最为基础的用户二进制文件,也就是应用程序。这个目录非常像Windows下的Programs目录。

并非所有的应用程序都存储在这个目录下面,有些不是特别基础的程序会存储在/usr/bin目录下面。比如Chrome浏览器等,或者用户自己安装的一些程序通常会在/usr/bin下面。而系统应用程序则通常会在该目录下面,比如ls、mkdir和cp等等。

如果你使用的桌面版的操作系统,可以通过GUI看到该目录下的内容。下面这张图是一个具体的例子。

linux依赖库(linux 依赖库)-编程知识网图4 二进制目录

/boot – 静态启动文件

在目录/boot下面包含的文件是用于启动操作系统的文件。比如GRUB boot loader文件和操作系统内核等。但是boot loader的配置文件并没有在这里,而是在/etc目录中。

/cdrom – 光盘安装点

目录/cdrom并不是FHS标准的一部分,但是我们在绝大多数发行版中都可以看到。该目录是光盘的临时挂载点。

/dev – 设备文件

在Linux下面,设备也是一个文件,比如磁盘、优盘或者光盘等。包括无线网卡、摄像头和串口等都是一个文件。而通常这些文件都是在/dev目录下面,大家可以切换到该目录下看看具体的内容。

linux依赖库(linux 依赖库)-编程知识网图5 设备目录

其中图是/dev目录的一个局部截图。在该目录下面最常见的可能就是/dev/sda这种文件,该文件表示一个SCSI磁盘。

处理实体设备外,在该目录下面还有很多伪设备。比如/dev/random表示一个产生随机数的设备,/dev/loop0则是一个将本地文件映射为磁盘的虚拟设备。这些伪设备有的时候非常用于,我们经常使用这些设备做一些测试。

linux依赖库(linux 依赖库)-编程知识网图6 GUI目录

/etc – 配置文件

操作系统和应用程序的配置文件通常都统一存储在一个目录下面,这个目录就是/etc。很多配置文件都已文本文件的形式存储在这里。我们可以通过文本编辑器修改配置项。比如网络的IP地址、Nginx的配置和系统日志的配置等等都可以在这里找到。

/home –主目录

这个目录称为主目录。在Linux操作系统下面通常每个用户都有一个自己的目录,该目录就在/home下面。例如本例中有一个名为zhangsn的用户,该用户的主目录在/home下如图7所示。

用户的主目录下面包含这数据文件和用户相关的配置文件。通常一个用户只能修改其目录下的文件,只有获得授权的情况下才能访问其它文件。

linux依赖库(linux 依赖库)-编程知识网图7 zhangsn的主目录

/lib – 基础共享库

在/lib目录中存储的是/bin和/sbin中二进制文件(应用程序)需要的库文件。在/usr/bin下的应用程序依赖的库通常在/usr/lib目录下面。

/lost+found – 可恢复的文件

每一个文件系统都有一个lost+found目录。如果文件系统崩溃,在系统下次启动的时候会进行数据检查。在检查的过程中如果发现有数据冲突的文件就会将其放入该目录中。这样,你就可以试着手动恢复该文件。

/media – Removable Media

在目录/media下面包含的子目录是一些可插拔设备的挂载点。当一些可插拔设备插入电脑时,在该目录下会自动创建子目录,并进行挂载。

/mnt – 临时挂载点目录

该目录通常是空的。主要用于临时挂载一些外部文件系统。比如有多个数据磁盘的情况下,会将格式化的磁盘挂载到该目录下面。mnt字符是mount的缩写,也就是挂载的意思。

/opt – 自选软件包(Optional Packages)

自行安装的非常规软件通常会安装在该目录。

/proc – Kernel & Process Files

该目录也是一个虚拟目录,也就是并不是存储文件数据的目录。这个目录中存储的文件通常是用来获取操作系统内核内部信息或者进程内部信息的。

linux依赖库(linux 依赖库)-编程知识网图8 proc目录

比如每个进程在该目录下都有一个子目录,而字母的名字就是进程ID。通过cat命令对该目录下的文件进行读取,可以获取进程的详细信息。例如我们进入目录/proc/258下面,这个是进程ID为258的进程的信息,通过ls命令可以看到如下内容。

linux依赖库(linux 依赖库)-编程知识网图8 进程详细信息

/root – root主目录

目录/root是root用户的主目录。root用户的主目录并不是在/home下面,而是在根目录下面。这一点需要注意。

/run – 应用程序状态文件

这个目录是比较新的目录,用于应用程序存储经常变化的文件,比如文件锁、进程ID或者套接字等等。

/sbin – 系统管理二进制文件

该目录与/bin目录类似,用于存储二进制文件。与/bin目录不同的地方是这个目录存储的是用于系统管理的二进制文件,比如磁盘格式化(mkfs)、磁盘分区(fdisk)和网络配置(ifconfig)等命令。

linux依赖库(linux 依赖库)-编程知识网图9 系统命令

/selinux – SELinux虚拟文件系统

如果你的Linux发行版使用SELinux作为安全管理,那么该目录包含着SELinux使用的相关文件。

/srv – 服务数据

该目录存储具体服务提供的数据。通常该目录是空的。这个目录中的数据通常是提供给外部的,比如Web网站存储的用户信息。这里需要注意与/var和/tmp的区别,前者是提供给外部用户的,而两者则是应用自己使用的,而且/tmp中的数据重启后会丢失。

/tmp – 临时文件

应用程序产生的临时数据通常存储在该目录中。该目录有一个特点,就是系统重启后目录中的数据将被清理。

/usr – User Binaries & Read-Only Data

与系统使用的应用程序和文件不同,在/usr目录下存储的是用户使用的应用程序的文件。比如/bin下面存储的系统二进制文件,而/usr/bin下面则是用户使用的二进制文件。/lib下面存储的系统库文件,而/usr/lib下面存储的是用于应用程序使用的库文件。

/var – 变量数据文件

/var目录是/usr目录对应的可写目录,在/usr目录中的内容只读的,而/var则是可写的。日志文件和正常操作中的一些写入操作通常会写入/var目录。例如,日志文件通常存储在/var/log中。