一、前言 在项目开发时,经常会用到第三方库,也会自己创建动态库给别人或者给自己其他的工程项目使用。 库的类型分为动态库、静态库。 在Linux下动态库的后缀为.so,静态库的后缀为.lib。...二、动态库的创建与使用案例 2.1 创建动态库 创建动态库的语法格式: gcc -fPIC -shared -o .so 源文件名称.c 如何命名?...说明: 默认情况下系统搜索动态库的路径是/lib 、 /usr/lib 方法1: 直接将动态库拷贝到/lib 或者 /usr/lib 目录下。 [wbyq@wbyq linux_c]$ ..../a.out 三、静态库创建与使用 3.1 创建静态库 注意: 动态库如果静态库名字重名的时候,编译器优先使用动态库....静态库的命名规则: libxxx.a 创建静态库的流程: 先将.c源文件编译成.o文件 gcc xxx.c xxx.c xxx.c ...
Linux的下是由父进程来完成的,创建完成的新进程是子进程对于子进程它有两种执行顺序的可能性: 父进程和子进程并发执行; 子进程先执行,父进程等待子进程执行完毕。...在Linux下的fork函数用于创建一个新的进程,使用fork()的函数来创建一个进程时,子进程只是完全复制父进程的资源。这样得到的子进程和父进程是独立的,具有良好的并发性。...Linux的采用了copy-on-write技术(COW),即:只有在子进程中发生写入操作的时候,才真正的去复制父进程的资源,否则不进行复制操作,比如在fork的子进程中只是调用exec函数来执行另外一个可执行文件...总结一下:fork函数创建的子进程是父进程的复制,子进程和父进程并发执行来段代码测试一下。...除了fork之外,Linux的系统还提供了vfork的函数来建立一个新进程.vfork建立的新进程和fork的不同之处在于: vfork创建的子进程和父进程是共享地址空间的,而不是复制,因此子进程中的数据和父进程中的数据是共享的
如何使用Linux命令行创建新的用户呢?...我是在Ubuntu下进行的,例如添加名为test的新用户: 最简单的命令: sudo adduser test 会自动将该用户添加到同名组中,创建/home/test/,从etc/skel/复制文件...usermod -Ga root test 或者adduser test root 最后,如果要删除用户的话: 删除用户: sudo userdel test rm -rf /home/test 命令行下切换用户
在windows下,一个文件有:创建时间、修改时间、访问时间。而在Linux下,一个文件也有三种时间,分别是:访问时间(Access)、修改时间(Modify)、状态改变时间(Change)。...image.png 很不幸,Linux目前常见的文件系统是没有存储文件创建时间的,比如ext3就没有存储。...也就是说本人是无法查看文件创建时间的。...但是,如果文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能。...---- 参考文献 [1]What file systems on Linux store the creation time?
linux下编译qt5.6.0静态库 编译QT是一件比较麻烦的事情。所以如果没有必要,就不要编译了。如果你只需要使用QT的一些基本功能,那么就只编译源码目录下的qtbase目录下的东西即可。...下面所介绍的都只是在linux下适用的(windows下使用MinGW也可以,QT提供的MinGW安装包是32位的,需要64位的可以参考)。...提供一个我已经编译好的了 linux下64位gcc编译 http://pan.baidu.com/s/1eRMnf26 提取密码 iz39 windows下64位mingw...-static 创建并使用QT静态库 -no-largefile 禁用大文件支持 + -largefile 启用QT访问大于4 GB的文件功能 -no-accessibility 不编译的可访问性支持...意思是警告:使用静态链接将禁用动态加载插件的使用。确保导入所有需要的静态插件,或者编译所需的模块到库中。这不是一个好的做法。 ?
因为只需要编译静态库,也没有特殊要求,所以使用的编译选项配置很简单: ....:指示生成静态库。.../inc)下,将libssl.a和libcrypto.a静态库拷贝到自己模块的库文件目录(..../lib)下,在makefile中添加头文件目录和lib库: INCLUDE += ******** -I./inc LIB += ******* -L....提供FTP+SSL/TLS认证功能,并实现安全数据传输 http://www.linuxidc.com/Linux/2013-05/84986.htm Linux下使用OpenSSL生成证书
由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。 2.库的种类 linux下的库有两种:静态库和共享库(动态库)。...静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。...4.库文件是如何产生的在linux下 静态库的后缀是.a,它的产生分两步 Step 1.由源文件编译生成一堆.o,每个.o里都包含这个编译单元的符号表 Step 2.ar命令将很多.o转换成.a,成文静态库...下,库文件一般放在/usr/lib /lib下, 静态库的名字一般为libxxxx.a,其中xxxx是该lib的名称 动态库的名字一般为libxxxx.so.major.minor,xxxx是该lib的名称....2 => /lib/ld- linux.so.2 (0×40000000) 可以看到ln命令依赖于libc库和ld-linux库 7.可执行程序在执行的时候如何定位共享库文件 当系统加载可执行代码时候
sudo chkconfig --levels 345 nexus on ## 启动nexus服务 sudo service nexus start 关于系统运行级别以及chkconfig命令的用法参考Linux...Nexus 操作 (1) 创建用户 ? ? ? ? 退出系统,用新创建的用户登录(账户hadoop/密码hadoop) (2) 创建宿主仓库 ? ? ? ? (2) 创建代理仓库 ? ? ? ? ?...>和下可以共用一个仓库。...,你需要自己创建一个,另外无论是部署快照版构件还是部署发布版构件,都是需要部署到宿主类型的仓库中,而我们之前配置的下载构件的仓库是一个仓库组,这里需要注意一下。...创建用于管理这两个仓库的权限(这里只演示为bonc-releases仓库创建权限) ? ? ? 创建一个角色bonc-role,添加这两个权限 ? ? 创建一个用户,赋予bonc-role角色 ?
一、前言 之前有几篇文章介绍了Linux下文件编程,那么目录和文件编程类似,也有一套函数,可以打开,读取、创建目录等。...创建目录、文件除了命令以外(mkdir、touch),都有对应的函数实现相同功能。.../a.out \n"); return 0; } printf("即将创建的新目录名称:%s\n",argv[1]); /*1....该函数不能创建多层目录 /*2..../a.out 123.c 456.c app.c [wbyq@wbyq linux_c]$ ./a.out \*.c .
取消建立以用户名称为名的群组 -r 建立系统帐号 -s 指定用户登入后所使用的shell -u 指定用户ID 参考实例 建立名为linuxcool的用户账号: [root@linux...~]# adduser linux 建立账号并指定有效期为2014年1月2日: [root@linux ~]# adduser -e 1/2/14 linux 为添加的用户指定相应的用户组: [root...@linux ~]# useradd -g root kk 为新添加的用户指定/home目录: [root@linux ~]# useradd -d /home/myf kk
virtualenv能够用于创建独立的Python虚拟环境,多个Python相互独立,互不影响。 virtualenvwrapper这个软件包可以让我们管理虚拟环境变得更加简单。...不用再跑到某个目录下通过virtualenv来创建虚拟环境,并且激活的时候也要跑到具体的目录下去激活。 下面介绍安装python虚拟环境的方法: 使用pip安装包前,先更新pip。...创建虚拟环境 # mkvirtualenv py3-env 也可指定虚拟环境的python版本 # mkvirtualenv --python=/usr/bin/python3 py3-env 5....pip install virtualenv sudo pip install virtualenvwrapper 2 激活虚拟环境 source virtualenvwrapper.sh 3 创建虚拟环境...解决: 我又想起了上个问题的解决方法, 在~/.local/bin/下找到了virtualenv文件, 这可能就是python3-virtualenv所对应的了, 再将其拷贝至/usr/bin/目录下,
由于windows和linux的本质不同,因此二者库的二进制是不兼容的。 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。...Linux系统有几个重要的目录存放相应的函数库,如/lib, /usr/lib。 静态函数库、动态函数库 A....函数库的创建 静态函数库的创建 ar rcs libname.a a.o b.o ar:静态函数库创建的命令 -c :create的意思 -r :replace的意思,表示当前插入的模块名已经在库中存在...对一个库做ar s等同于对该库做ranlib 动态函数库的创建 gcc -shared -Wl,-soname,youLibSoname,-o youRealName a.o b.o **linux共享库名称分为三段...我们先创建一个src和lib文件夹,src下存放源代码,,lib下存放共享库 我么在src下写个add.c和sub.c,代码很简单,就是对两个数实现加法和减法运算,代码略过。
Makefile 作为一名Linux软件开发工程师对Makefile都不陌生,Makefile可以定义整个工程的编译规则,编写好Makefile后每次代码有修改时我们只需make进行编译,它可以省去繁琐的编译步骤...下面展示如何一步一步创建属于自己的AutoMake工程 环境:Ubuntu16.04 1. 新建工程目录 mkdir Project 2....在工程目录创建以下目录及文件 mkdir include src # 添加源码目录 touch Makefile.am touch src/Makefile.am touch NEWS README ChangeLog...执行命令autoscan 将生成的configure.scan重名congfigure.ac 可用修改好的Project下的configure.ac 5. 配置编译 autogen.sh文件内容 #!.../bin/sh aclocal autoconf automake --add-missing 将Project下autogen.sh拷贝到当前目录,然后执行以下命令 sh autogen.sh .
一、Linux下Oracle数据库常用命令 Oracle用户下执行: $ sqlplus system/manager @ file.sql 执行sql脚本文件 $ sqlplus system/manager...sqlplus,使用system用户 $ sqlplus /nolog 以不连接数据库的方式启动sqlplus,启动数据时会用到 $ lsnrctl status/stop/start Oracle的监听器...~~~~~~今就想到这些,先写到这,呵呵~~~ 二、Linux监听配置 相关说明: Oracle11g64位软件的安装位置为/u01/app/oracle/product/11.2.0/dbhome_...下开放1521端口 1....那么可以关闭linux的防火墙。 sudo service iptables stop 2.
Linux安装nginx并启动 1.前言 2.linux安装nginx 2.1 下载nginx安装包 2.2 解压压缩包 2.3 执行nginx配置 2.4 make安装 3.linux启动nginx...3.1 进入nginx启动配置目录 3.2 启动nginx 3.2.1 常用nginx命令 3.3 查看效果 1.前言 这里记录下在linux中安装nginx的方法,以及linux执行命令的步骤进行记录...2.linux安装nginx 2.1 下载nginx安装包 下载地址:https://nginx.org/download/ 选择一个tar压缩格式的下载,此处我下载的版本是 nginx-1.13.6...3.linux启动nginx 3.1 进入nginx启动配置目录 cd /usr/local/nginx cd sbin 如下图: 3.2 启动nginx 在sbin目录下执行: .
问题发现于CentOS下安装node.js,建立软连接变为全局时。点击查看。
linux下有两种库:动态库和静态库(共享库) 二者的不同点在于代码被载入的时刻不同。 静态库的代码在编译过程中已经被载入可执行程序,因此体积比较大。...静态库和动态库的最大区别,静态情况下,把库直接加载到程序中,而动态库链接的时候,它只是保留接口,将动态库与程序代码独立,这样就可以提高代码的可复用度,和降低程序的耦合度。...在UNIX中,使用ar命令创建或者操作静态库 ar archivefile objfile archivefile:archivefile是静态库的名称 objfile:objfile是已...创建文件冗余信息 -c 创建静态库文件 example: /****************** hello.h **************/ void hello...无论静态库,还是动态库,都是由.o文件创建的。
mkdir命令是“make directories”的缩写,用来创建目录。 注意:默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。...所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录,是不是很强大呢?...dir 的子目录: [root@linux~]# mkdir dir 在目录/usr/linuxcool下建立子目录dir,并且设置文件属主有读、写和执行权限,其他人无权访问 [root@linux~...]# mkdir -m 700 /usr/linux/dir 同时创建子目录dir1,dir2,dir3: [root@linux~]# mkdir dir1 dir2 dir3 递归创建目录: [root...@linux~]# mkdir -p linux/dir
这两天学习了linux 守护进程这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记。 1,进程的概念:程序的一次动态执行过程。...2,进程的类型:交互进程,批处理进程,守护进程 3,守护进程:Linux中的后台服务进程,daemon进程 4,守护进程的创建步骤: (1)创建子进程,父进程退出。...(2)在子进程中创建新会话,使当前进程成为新会话组的组长。...进程从父进程那里继承了文件创建掩码,所以可能会修改守护进程存取权限位,所以要将文件创建掩码清除,umask(0); (5)关闭文件描述符。 子进程从父进程那里继承了打开文件描述符。...按照上面的步骤即可完成守护进程的创建。
nginx监听套接字的创建是根据配置文件的内容来创建的,在nginx.conf文件中有多少个地址就需要创建多少个监听套接字。 本文不针对源码逐一注解分析,只是说明套接字创建监听流程。...函数,这个函数负责将创建的监听套接字进行套接字选项的设置(比如非阻塞、接受发送的缓冲区、绑定、监听处理)。...这个函数根据每一个IP地址:port这种配置创建一个监听套接字,这个函数还有一个很重要的任务,就是将监听套接字的回调函数设置为ngx_http_init_connection函数,记住这是监听套接字上的回调...这个函数是在worker进程初始化是被被调用的,ngx_event_process_init函数将每个监听套接字和一个连接(ngx_connection_t)相互创建关系。...在cycle内创建一个连接池,创建一个读事件池,创建一个写事件的池,然后创建for循环遍历cycle中的所有ngx_listening_t的结构体,对每一个ngx_listening_t结构体,也就是每一个监听套接字
领取专属 10元无门槛券
手把手带您无忧上云