
linux
Captain--Jack
这个作者很懒,什么都没留下…
展开
-
--start-group和--end-group
ld链接器,正常情况,链接的时候库文件只会按它们出现在命令行的顺序搜索一遍,如果包里有未定义的引用标号,而且该包还被放在命令行的后面,这样链接器就无法解决该标号的引用问题。通过给包分组,这些包可以被循环搜索直到所有的引用都可以解决为止。使用该选项将降低性能。只有在无法避免多个包之间互相引用的情况下才使用。...转载 2020-10-19 14:29:31 · 2034 阅读 · 0 评论 -
Linux下getopt()函数的简单使用
在linux下,写一些小demo,需要配合参数的使用更灵活,参数的检测使用getopt()函数就非常方便。函数:int getopt(int argc,char * const argv[ ],const char * optstring)头文件:unistd.h参数说明:optstring:检索选项配置字符串。规则:一个冒号表示该选项后面必须带有参数(没有参数会报错),参数可以和选项连在一起写,也可以用空格隔开;两个冒号表示该选项的参数是可选的,可以有参数,也可以无参数,但是需要注意,参数和选项原创 2020-08-17 18:07:46 · 422 阅读 · 0 评论 -
libcurl 使用方法简介
最近项目中需要使用http实现文件的上传功能,使用到了libcurl,转载了一篇博客记录下,便于后续的查看。简介libcurl是一个跨平台的开源网络协议库,支持http, https, rtsp等多种协议 。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。所以,使用libcur...转载 2020-05-06 15:28:55 · 2836 阅读 · 0 评论 -
查询磁盘空间 statfs函数
因为要读取SD卡的大小和使用情况,所以用到statfs这个函数,功能类似于df命令。需要的头文件:#include <sys/vfs.h>int statfs(const char *path, structstatfs*buf);struct statfs {long f_type; /* 文件系统类型 */long f_bsize; /* 经过优化的传输块大...转载 2020-04-15 12:24:54 · 1336 阅读 · 0 评论 -
Git 教程
一、Linux 平台上安装Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。Debian/Ubuntu Git 安装命令为:$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev$ apt...转载 2020-03-25 16:55:42 · 307 阅读 · 0 评论 -
静态库调用其它静态库
在我们封装底层库的时候,有时会想能不能把底层的库直接打包进我们的库里,之前也一直有这样的疑问,最近终于把这个问题搞清楚了,如下:编译静态库时只有编译过程,没有链接过程,静态库引用其它库并不会在编译的时候把引用的库函数编译到生成的lib中,只是简单的将编译后的中间文件打包,在编译最终的可执行项目(.exe和.dll)的时候,需要引用所有的库,进行符号消解。如果你需要封装,使用动态库。...原创 2019-12-24 12:19:22 · 4717 阅读 · 0 评论 -
linux下 GCC编译链接静态库&动态库
静态库有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库, 我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后 要讲到的environ变量)。本文将介绍怎么创建这样一个库。这些文件的目录结构是:$ tree . |-- main.c `-- stack |-- is_empty...转载 2019-12-24 10:54:55 · 803 阅读 · 1 评论 -
CAN网络学习总结
什么是CAN控制器局域网(CAN-Controller Area Network)是 BOSCH公司为现代汽车应用领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。CAN bus - Wikipedia https://en.wikipedia.org/wiki/CAN_bus组网方式总线型组网。类...转载 2019-12-03 12:06:09 · 1939 阅读 · 1 评论 -
pkg-config 介绍
一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。但是由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用 -L 参数,也会造成连接界面的不统一。编译和连接界面不原创 2017-02-14 19:55:40 · 834 阅读 · 0 评论 -
Linux系统挂载存储只读改成读写
1、mount:用于查看哪个模块输入只读,一般显示为:[root@localhost ~]# mount/dev/cciss/c0d0p2 on / type ext3 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=62原创 2016-11-24 09:37:42 · 47586 阅读 · 0 评论 -
为何要把文件夹形式的rootfs制作成单个rootfs镜像文件
假设目前我们已经有了rootfs,它是文件夹形式的,可以在pc 端浏览的rootfs。但是,我们的目的是:把此rootfs,弄到嵌入式开发板上。而嵌入式开发板上的rootfs所存放到的物理设备,往往都是nand flash。所以此时,没法直接把此rootfs,放到该nand flash上去,所以需要弄成,对应的格式的文件系统的镜像,比如用mk.jffs2制作成jffs2的镜像,用mkyaf转载 2016-11-18 13:44:53 · 2773 阅读 · 2 评论 -
Linux下动态库之ldconfig和ldd指令详解
**********************************************************************************************************************************************************************前几天在编译第三方开源库的时候,转载了点击打开链接http://原创 2016-11-01 10:32:32 · 19395 阅读 · 1 评论 -
Linux下deb包和rpm包的安装方法
Linux下deb包和rpm包的安装方法 在linux下我们安装软件,很多下载下来的软件是.deb包或者是.rpm包,今天来看看它们的安装方法与区别。 一、deb 是 ubuntu 、debian 的格式,是debian发行版的软件包,ubuntu是基于debian 发行的 所有可以用。dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方原创 2016-10-31 20:31:02 · 25177 阅读 · 1 评论 -
configure配置安装详解
由于最近项目需要在HMI层生成二维码,所以去网上找了第三方开源库。可是下载下来里面都是源码,没有动态库或者静态库,所以就需要自己去编译生成。源码库中只有一个configure的可运行得配置脚本,之前用过,没有详细了解,今天去网上查阅资料,以下是整理的一些心得笔记。首先让我们先来了解一下configure这个文件的作用。Linux环境下的软件安装,并不是一件容易的事情;如果通原创 2016-10-28 19:25:59 · 39960 阅读 · 5 评论 -
Linux系统中“动态库”和“静态库”那点事儿
今天忙着编译库文件,中间遇到不少问题,看到这篇文章不错,就转载过来了,后面我会整理下今天的问题,从网上下载了一个开源库,如何进行编译,如何加载到我们的工程中。今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻。在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情。 在Linux操作系统中,普遍使用ELF格式作为可执行...原创 2016-10-28 17:41:08 · 5206 阅读 · 8 评论 -
消息队列使用注意的地方(argument list too long)linux
Linux提供了一系列消息队列的函数接口来让我们方便地使用它来实现进程间的通信(IPC)。本文不讲详细的使用,详细请参考 http://blog.youkuaiyun.com/ljianhui/article/details/10287879今天只讲在使用msgsnd()和msgrcv()函数一些注意的地方。首先我们先看看这两个函数的原型:msgrcv函数:该函数用来从一个消息队列获原创 2016-10-26 20:31:17 · 3979 阅读 · 0 评论 -
strdup 和 _strdup 的使用及区别
这两者很让人头疼,虽然现在用的是C++编程,但是有时候移植一些第三方库,要是用C语言写的,就有可能遇到这个问题。今天去详细了解了一下。先看看它们的使用介绍(二者用法一样,就是出现的环境不一样):strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现。原型:extern char *strdup(char *s);头文件:stri原创 2016-11-03 13:02:54 · 19569 阅读 · 2 评论