linux下的lib文件

Python+ArcGIS实战:5步搞定土壤类型预测(附随机森林模型配置技巧) 本文详细介绍了如何结合Python与ArcGIS,利用随机森林模型进行土壤类型预测。通过5个核心步骤——数据预处理、样本创建、模型构建、空间预测与精度验证,构建了一套自动化、高精度的空间预测工作流,并提供了关键的模型配置与调参技巧,助力GIS开发者高效完成土壤制图任务。 阅读详情

zz:http://ooplab.org/post/421.html

 

作者:曹江华 赛迪技术天地
随着Linux性能的不断提升和逐渐普及,会有越来越多的人在Linux下从事应用软件的开发。这里笔者根据从事Linux应用程序开发的经验,介绍Linux编程库使用的一些基础知识。

库的定义和种类

所谓编程库就是指始终可以被多个Linux软件项目重复使用的代码集。库是Linux软件开发所追求的目标 ,C语言就是一个例子,它包含了几百个可以重复使用的例程和调试程序的工具代码,其中包括函数。如果每次编写新程序都要重新写这些函数会感到非常麻烦。

使用编程库有两个主要优点,一是可以简化编程,实现代码重复使用;二是可以直接使用许多经过调试的测试和调试工具。

Linux下的库文件分为共享库和静态库两大类,它们两者的差别仅在程序执行时所需的代码是在运行时动态加载的,还是在编译时静态加载的。

Linux的库一般在/lib 或/usr/lib 目 录下。lib是库(Library)的英文缩写,它主要存放系统的链接库文件,没有该目录则系统就无法正常运行。/lib目录中存储着程序运行时使用的共 享库。通过共享库,许多程序可以重复使用相同的代码,并且这些库可以存储在一个公共的位置上,因此能减小运行程序的大小。这个目录包含程序在链接时使用的 各种库。


库的命名和编号

在Linux下开发应用程序时,绝大多数情况使用的都是C语言,目前Linux下最常用的C语言编译器是GCC,它的全称是GNU Compiler Collection,下文中的库介绍都以它为例。

GCC是直接建立在内核基础上的,是Linux操作系统外层的图形界面开发工具(Qt、GTK+)和网络应用开发工具(PHP、Prel、Python)的基础和过渡。掌握了底层开发工具,可以加快和优化外层应用开发,从而达到开发速度和开发质量的和谐统一。

Glibc 2.3.2 是最新版的GNU C库。它目前不需要修改就可以在GNU Hurd、Linux i386、m68k,以及Alpha系统上执行,并且从2.1版开始加入了对Linux PowerPC、MIPS、Sparc、Sparc 64等系统的支持。

如果想查看自己Linux计算机的Glibc版本可以使用下面命令:

rpm -qa|grep glibc
glibc-common-2.3.2-11.9
glibc-2.3.2-11.9
glibc-devel-2.3.2-11.9

由上可见,Red Hat Linux 9.0使用的Glibc版本是2.3.2。

1.库的命名

库的命名比较简单,第一个特点是所有的库以lib开头,GCC命令在在 -l 选项所指定的文件名前会自动加入lib。第二个特点文件名 以.a结尾的库是静态库 。第三个特点文件名是 .so的库为共享库(共享库是在运行的时候动态加载的 ) 。默认情况下, GCC在链接时优先使用共享库,只有当共享库不存在时才考虑使用静态库。

2.库的编号

库的编号格式如下:

library_name . major.num . minor_.min . pathch_num
例如,笔者Red Hat Linux 9.0的GUN数据库是libgdbm.so.0.0.2,详细表述如下:

◆library_name是libc.so(标准C库);

◆major_num是2(主版本号);

◆minor_.min是0(次版本号);

◆pathch_num是0(补丁级别号又称发行号)。

libgdbm.so.0.0.2所在目录是/usr/lib,其大小是24576字节,这是一个 ELF (Executable and Linking Format)格式的二进制格式文件,运行时由系统将其装入内存开始执行。

ELF有三种主要类型:

◆适于连接的可重定位文件(Relocatable File),可与其它目标文件一起创建可执行文件和共享目标文件。

◆适于执行的可执行文件(Executable File),用于提供程序的进程映像,加载的内存执行。

◆共享目标文件(Shared Object File),连接器可将它与其它可重定位文件和共享目标文件连接成其它的目标文件;动态连接器又可将它与可执行文件和其它共享目标文件结合起来创建一个进程映像。

常用的编程库

库操作命令

Linux库操作可以使用命令完成,目前常用的命令是ldd和ldconfig。

1. ldd 是Library Dependency Display缩写,它的作用是 显示一个可执行程序必须使用的共享库 。

(1)命令格式

ldd [选项] 文件名

(2)主要参数

-d 执行重定位并报告丢失的函数。

-r 执行对函数和数据对象的重定位,并报告丢失的函数和数据对象。
(3)应用实例

Perl语言是开发者喜欢使用的一种“胶水语言”(能够将许多元素连接在一起,因此它具有极强的适应性),如果需要查询有哪些共享库,则可以首先使用find命令查询这个程序的绝对路径,然后使用ldd命令:


#find -name perl
ldd /usr/bin/perl


其 结果见图2所示。图2中,箭头左边的一列显示的是Prel语言所需的.so文件名, 箭头右边的一列显示是库的真实库名称。应用程序链接到库的so名字是到实际库的符号链接。以第二行为例,最后的0x40014000是库 libperl.so的加载地址。由此可以看到,运行Perl语言需要9个共享库。

2. ldconfig

ldconfig 命令的作用是决定位于目录/usr/lib和/lib下的共享库所需的运行链接。这些链接保存在的Libs保存在/et/ld.so.conf文件中。搜 索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的链接和缓存文件。缓存文件默认为/etc /ld.so.cache,此文件保存已排好序的动态链接库名字列表。

(1)命令格式

ldconfig [选项] [libs]

(2)主要选项

-v或--verbose ldconfig将显示正在扫描的目录、搜索到的动态链接库,以及它所创建的连接的名字。

-f CONF 指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf。

-C CACHE 指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,文件存放已排好序的可共享的动态链接库的列表。

-p或--print-cache 让ldconfig打印出当前缓存文件所保存的所有共享库的名字。

-r ROOT 改变应用程序的根目录为ROOT。

-n ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib、/usr/lib),也不扫描配置文件/etc/ld.so.conf所列的目录。

运行没有选项的ldconfig命令时,用于更新高速缓冲文件。这个命令主要用于高速缓冲DNS服务器(Caching DNS Server)。高速缓冲DNS服务器的原理是提供查询的历史记录,并且利用这些记录来提高查询的效率。

当某个查询是第一次被发送到高速缓冲DNS服务器时,高速缓冲DNS服务器就将此查询的整个过程记录下来,在一定的时期内用它来回答所有相同的查询,从而减少整个DNS系统的负担并且提高查询速度。

(3)应用实例

如果用户想知道系统中有哪些动态链接库,或者想知道系统中有没有某个动态链接库时,可用-p选项让ldconfig输出缓存文件中的动态链接库列表,从而查询得到。


ldconfig -p
998 libs found in cache `/etc/ld.so.cache'
libzvt.so.2 (libc6) => /usr/lib/libzvt.so.2
libzvt.so (libc6) => /usr/lib/libzvt.so
……

ldconfig命令输出结果表明,在缓存文件/etc/ld.so.cache中找到998个共享库,下一行开始便是一系列共享库的名字及其全名(绝对路径)。因为实际输出结果很多,为节省篇幅以“……”表示省略的部分。
库的升级

Linux 系统软件更新很快,新的核心几乎每几个星期就公布一次,其它软件的更新也是非常频繁。多数情况下,盲目跟随潮流的升级并不必要,如果确实需要新版本的特性 时再升级。换句话说,不要为了升级而升级。Linux系统中多数软件都是用共享库来编译的,其中包含了在不同程序之间共享的公用子例程。

在运行某个程序时,如果看到如下信息:“Incompatible library version.”则表明需要将该库升级到程序所需要的版本。库是向下兼容的,也就是说,用老版本库编译的程序可以在新安装的版本库上运行,反之则不行。

Linux库函数的升级是一项重要的工作,往往与其它软件包的升级有一定关联作用,所以操作前一定要备份文件。下面看一下如何把Glibc 2.2.4.13升级至2.3.2版本,其过程如下:

1.下载.gz压缩文件并解压

在GUN C网站下载的四个.gz压缩文件,解压至一临时目录中:


cd /usr/caolinux
tar xzvf glibc-2.3.2.tar.gz
cd glibc-2.3.2
tar xzvf ../glibc-linuxthreads-2.3.2.tar.gz
tar xzvf ../glibc-crypt-2.3.2.tar.gz
tar xzvf ../glibc-localedata-2.3.2.tar.gz

2.建立库函数的安装目录

mkdir /usr/higlibc
cd /usr/higlibc

3.建立编译目录

mkdir cao
cd cao
./configure --enable-add-ons=linuxthreads,crypt,localedata -prefix
=/usr/higlibc

4.编译与安装

make
make check
make install

编译与安装过程根据计算机硬件配置不同,从10分钟到几十分钟不等。 ,
make check 在遇见致命错误时会中断的
如果是非致命的错误(也可以理解为无关紧要)就不会停下来
换句话说,只要make check过程没有自己中断就没问题
 
make check只是在你安装之前对你的环境以及源码等进行检测以确保编译安装正确的,
你可以跳过这一步
 
这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。
./configure是用来检测你的安装平台的目标特征的 。比如它会检测你是不是有CC或GCC,
并不是需要CC或GCC,它是个shell脚本
make是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。

如果你也写程序想使用AUTOMAKE和AUTOCONF,可以参考CNGNU.ORG上的相关文章。

呵呵。我补充问一句:make 和 make install 中的mark是系统自带的命令还是可执行程序文件?
。  make install中,是不是可以认为 install是mark的参数???
install 不是make的参数,而是再makefile(Makefile)中型如:install:的语句。
如果用make install,那么就执行install:后面的语句。
 
5.改变数据库的链接

ln -s    /usr/higlibc/lib/ld-linux.so.2       /lib/ld-linux.so.2


然后,修改/etc/ld.so.conf,加入一行/usr/higlibc/lib,执行下面代码:

ldconfig -v

更新/etc/ld.so.cache的内容,列出每个库的版本号,扫描目录和所要创建及更新的链接。

6.更改GCC设置

cd /usr/lib/gcc-lib
cp -r i386-redhat-linux higlibc


7.更新符号链接

cd /usr/higlibc/include
ln -s /usr/src/linux/include/linux
ln -s /usr/src/linux/include/asm
ln -s /usr/X11R6/include/X11

8.测试

编写一个简单的C程序测试一下,除了头文件只需一条printf语句即可:


#include
int main(void)
{ printf ("Hello , Linux !/n");
return 0;}


然后用GCC编译一次,当程序出现如下运行结果,则说明已经正确地升级了。


“Hello, Linux !”

以上五部分分别介绍了Linux库的定义属性、“标准”库的命名和编号约定、经常使用的库、与库操作相关命令的作用,以及库升级的步骤,希望能对初学Linux的开发者有所帮助。
================================================================================

Linux动态连接

Linux中的应用程序以以下两种方式之一链接到外部函数
  -> 在构建时与静态库(lib*.a)静态链接,并且将库代码包含在该应用程序的可执行文件里
  -> 在运行时与共享库(lib*.so)动态链接,通过动态链接装入器,将动态库映射进应用程序
     的可执行内存中
。在启动应用程序之前,动态链接器将所需的共享库映射到应用的内存,
     或者使用系统共享的目标并为应用程序解析所需的外部引用。

Linux动态连接

1.Linux中的应用程序以以下两种方式之一链接到外部函数
  -> 在构建时与静态库(lib*.a)静态链接,并且将库代码包含在该应用程序的可执行文件里
  -> 在运行时与共享库(lib*.so)动态链接,通过动态链接装入器,将动态库映射进应用程序
     的可执行内存中。在启动应用程序之前,动态链接器将所需的共享库映射到应用的内存,
     或者使用系统共享的目标并为应用程序解析所需的外部引用。

2.Linux提供4个函数(dlopen,dlerror,dlsym和dlclose)
  -> 一个include文件[dlfcn.h]以及两个库[静态库-libdl.a和动态库-libdl.so]来支持
     动态链接装入器
  -> dlopen:将共享目标文件打开并映射到内存中,并且返回句柄
  -> dlsym:返回一个指向被请求入口的指针[函数地址]
  -> dlerror:返回NULL或者一个指向描述最近错误的ASCII字符串指针
  -> dlclose:关闭句柄并且取消共享目标文件的映射

3.动态链接装入例程dlopen需要在文件系统中查找共享目标文件以打开文件并创建句柄,有4种 方式用以指定文件的位置
  -> 直接在dlopen调用中指定绝对文件路径
  -> 在LD_LIBRARY_PATH环境变量中指定的目录中
  -> 在/etc/ld.cache中指定的库列表中
  -> 先在/usr/lib 之中,然后在/lib 之中

另一种:

在Linux下,大部分系统的library库被安装在/usr/lib目录下。只有一些
基本的共享库被安装在/lib目录下。例如:libc.so,libcurses.so,libm.so
,libtermcap.so(各个版本对应的文件会有些不同),在其他部分被mount上
之前,那些文件是启动Linux系统所必须的。连接器默认的搜索路径是
/lib,   /usr/lib,       /usr/local/lib

环境变量LD_LIBRARY_PATH列出了查找共享库时除了默认路径之外的其他路径。
/etc/ld.so.conf文件则指出了程序ldconfig要搜索的目录。该程序将这些目录中所有的
共享库都存储到/etc/ld.so.cache中。假如共享库已经被从默认的目录中
移走,Linux ELF动态连接库将在/etc/ld.so.cache文件中找该共享库。

程序ldconfig将把/etc/ld.so.conf文件中列出的搜索目录中的所有的
共享库存储到/etc/ld.so.cache中。假如共享库已经被从默认的目录中
移走,Linux ELF动态连接库将在/etc/ld.so.cache文件中找该共享库。

对于普通用户无法修改/etc/ld.so.conf,又想用其他位置的库,就可以用LD_LIBRARY_PATH了

请参见网上的一篇文摘:
今天在给Awstats安装GeoIP插件的时候,提示找不到一个链接库(libGeoIP.so.1),find发现此文件位于/usr/local/lib目录 ,而系统搜索的是/usr/lib目录,本来可以简单的做一个软链接(ln -s)来解决问题,不过我google之后发现了一个更好的方法:

打开/etc/ld.so.conf加入一行:/usr/local/lib
执行/sbin/ldconfig /etc/ld.so.conf

搞定了。

关于ld命令的使用方法

4.API组成
  -> 头文件:#include <dlfcn.h>
  -> API实现库:libdl.so.2 => /lib/libdl.so.2
     -> void * dlopen(const char *filename, int flag);
     -> const char *dlerror(void);
     -> void * dlsym(void *handle, char* symbol);
     -> int dlclose(void *handle);

5.构建使用共享库的应用程序
  -> [1]将库的实现源码文件编译成位置无关代码[-fpic]
  -> [2]创建共享库目标文件[lib*.so -shared]
  -> [3]将主程序同共享库链接[-ldl]p
 
     库的实现源码文件: uppercase.c lowercase.c
     主程序:dltest.c
     [1]
       $gcc -c -fpic  uppercase.c
       $gcc -c -fpic  lowercase.c
     [2]
       $gcc -shared -lc -o uppercase.so uppercase.o
       $gcc -shared -lc -o lowercase.so lowercase.o
     [3]
       $gcc -o dltest.c -ldl

11、iOS设备逻辑数据分析全解析 本文深入解析iOS设备中的逻辑数据,涵盖图像相关数据库(Photos.sqlite和PhotosAux.sqlite)、录音文件、iPhoto照片存储结构、多媒体文件、第三方应用程序、社交网络应用(如Twitter、Skype、Facebook等)以及苹果相关应用(如Google Mobile、Bing)的数据存储结构和取证方法。此外,还介绍了文档类应用(如Pages、Numbers、Documents To Go)的文件存储结构及恢复方法。适用于iOS取证、数据挖掘和数字调查领域。 阅读详情

相关推荐

AI初识—LLM、Ollama、Llama都是些个啥?

LLM指的是大语言模型(Large Language Model),是一种基于深度学习的模型,能够理解和生成自然语言。它通过大量文本数据进行训练,具备了理解上下文、生成连贯文本和回答问题的能力。著名的LLM包括OpenAI的GPT系列和Google的BERT。在AI技术快速发展的背景下,LLM、Ollama和Llama代表了现代自然语言处理的不同方面。LLM为我们提供了强大的语言理解能力,Ollama为模型的部署和管理提供了便利,而Llama则在效率和多样性上不断推进。

小蜗牛的珍贵百宝箱 4630

无法从共享目录中映射段 linux,dopen():未作为root用户运行时,“无法从共享对象映射段”...

我正在尝试在自制的Yocto Linux下加载一些自行编写的库。当以root身份运行同一程序,但不能以另一个后来添加的用户身份运行该程序时,它运行良好。for (){m_HModule = dlopen(Filename.c_str(), RTLD_NOW | RTLD_GLOBAL);if (m_HModule == NULL){fprintf(stderr, "Error: %s\n", dl...

weixin_35545782的博客 3150

RS485接口EMC设计:三级防护与滤波隔离方案

RS485总线在工业现场面临共模噪声、差模脉冲和地电位差三大电磁兼容挑战。通过三级防护架构(气体放电管、PTC热敏电阻、半导体放电管)实现能量梯次泄放,结合共模扼流圈和滤波电容形成完整防护链。该方案经实测可将6kV浪涌下的通信稳定性提升90%,特别适用于工业自动化、电力监控等严苛环境。设计要点包括防护器件选型计算、PCB分区布局及地处理策略,其中GDT通流能力与TSS箝位电压的配合是关键。

weixin_33419305的博客 525

无法从共享目录中映射段 linux,在Linux中Varnish无法启动:无法从共享对象映射段:不允许操作...

我在CentOS 6.7上安装了epel repo的清漆,它无法启动以下错误:Compiled VCL program failed to load:./vcl.1P9zoqAU.so: failed to map segment from shared object: Operation not permittedVCL compilation failed如果我使用varnishd二进制文件,...

weixin_39731807的博客 2660

KIBANA可视化管理界面说明

更说明转自https://blog.csdn.net/IT_ZRS/article/details/125496588 1 主要结构功能 使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图 主要进行搜索和查询 Visualize:统计视图 构建可视化的图表 Dashboard:仪表视图 将构建的图表组合形成图表盘 Timelion:时间轴视图 随着时间流逝的数据 APM:性能管理视图 应用程序的性能管理系统 Canvas:大屏展示

tian830937的专栏 7086

【AUTOSAR-COM】-2.3_通过PduGroup批量控制CAN Frame/Pdu的接收

-->如果实现类似UDS诊断 $28服务,控制所有APP CAN Rx Frame/Pdu/报文接收; -->自定义过滤CAN信号的接收。

「汽车电子助手」的博客 1991

共享内存映射错误

现象描述如下:调用远程API TongLink.sys报错如下E 1208 17:39:20.046|9|480-e70|quecontrolunit.c|2454|16:183|ThreadKrnlOpen[sendqcu] errorE 1208 17:39:20.125|9|480-880|quecontrolunit.c|1314|16:8|ShmOpen [ThreadKrnl] error, [e:_tongq_1222_node72_msg_sendqcu]-67 ss_err=-8原因分析及

TongTech2022的博客 1745

第6章: MMU Notifier在KVM虚拟化中的应用

本文分析了KVM如何利用MMU Notifier机制维护客户机与宿主机地址映射一致性。KVM采用三层地址空间转换架构(GVA→GPA→HPA),通过硬件辅助虚拟化(EPT/NPT)实现高效转换。重点探讨了KVM MMU Notifier回调实现,包括invalidate_range_start/end等核心函数,以及HVA范围处理流程。当宿主机内存变化时,KVM通过注册的notifier回调及时更新映射关系,确保虚拟化环境的内存一致性。文章详细解析了相关数据结构和关键代码实现,揭示了KVM内存管理的核心机制

图形/计算GPU的驱动与虚拟化技术分享园地 2324

JNI应用-初步应用

今天拉了一下3年前的ndk代码,发现和现在Android Studio生成的代码相差比较大,就重新写一个吧. 后面仍然会进一步探索,这个demo只是简单的融合生成的cpp文件和自建的cpp文件,在不同的路径下可以使用同一个库名称。 本章是否生成头文件不重要,可以应用即可。 因为本身比较简单,所以就不写注释了,如果有网友没接触过,可以留言提问。 创建项目 选择 Native C++ 配置 创建对应的java文件 MyJNI.java package com.jiataoyuan.createsodemo;

TaoYuan 2062

LeRobot 入门教程(二)强化学习训练及 SmolVLA 模型微调

本文介绍了LeRobot框架中基于人类在环的样本高效强化学习(HIL-SERL)工作流,包含真实机器人训练和模拟环境训练两大模块。在真实机器人部分,详细说明了从配置设置、工作空间边界确定、演示数据收集、奖励分类器训练到演员-学习者架构部署的全流程,并强调了人类干预的关键作用。同时介绍了适用于模拟训练的gym_hil环境及其配置使用方法。最后,文章提供了微调SmolVLA基础模型的指南,包括数据集收集、微调步骤和模型评估方法。该工作流实现了人机协作的高效强化学习,适用于各类机器人操作任务。

2506_90492529的博客 3897

零基础学习simulink-- 基于自适应模糊PID控制的直流电机速度控制系统

通过上述代码实现,您可以逐步创建和搭建一个基于自适应模糊PID控制的直流电机速度控制系统。该系统能够根据电机的状态和误差实时调整PID参数,确保电机速度稳定在设定范围内。自适应模糊PID控制具有较强的鲁棒性和适应性,能够在存在不确定性和扰动的情况下提供快速且精确的控制性能。Simulink提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。直流电机建模:建立直流电机的动态模型,包括电枢电压、电流、转速和负载扭矩。自适应模糊PID控制器设计。

amy_mhd的博客 413

linux与window文件目录共享——samba配置及在windows映射

作者:狼绅士——梵默修 一、【redhat下配置samba】 1.启动服务 [root@localhost ~]# /etc/init.d/smb start [root@localhost ~]# /etc/init.d/nmb start 2.查看服务启动 [root@localhost ~]# pgrep smbd 5098 5100 [root@localhost ~]#

狼绅士—狼秦 1万+

2026终极反反爬:Canvas/WebGL/字体指纹全维度伪装,应对浏览器检测实战指南

本文分享了2026年浏览器指纹检测现状及全维度伪装方案。当前反爬系统采用多维度联合指纹检测,重点针对硬件级(WebGL、Canvas)、系统级(字体、CPU)和行为级(鼠标移动)指纹。作者设计了一个独立的指纹伪装引擎,包含真实设备指纹库、指纹生成器和统一注入层,通过JS沙箱隔离实现伪装。核心方案包括:Canvas指纹通过真实设备渲染差异添加微偏移;WebGL指纹完整劫持上下文返回真实显卡参数;字体指纹劫持measureText方法模拟不同系统字体宽度。该方案实测可连续运行一个月零封号,解决了传统方法易被检测

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 925

linux查看lib文件,linux下的 lib文件的学习思考

说到这个LIB文件,先从一个小故障说起。某日开发说,一台测试用虚机可以PING通SSH不能连了。运维同学就赶紧去查,SSHD_CONFIG配置文件都正确啊,一点错误都没有,那为什么呢?测试下,不管连自己还是其他机,都是报错这里注意看,提示你有个libcom_err.so.2共享库文件找不到。询问开发,才了解他们测试一个软件,意外删除了某个库文件。那么在正常的相同虚机的机器查看下,再和出错的虚机比对...

weixin_39851048的博客 2188

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Linux - lib, lib32, lib64, libx32和libexec文件夹的区别

目的:/lib目录包含那些启动系统所需的共享库文件,以及运行根文件系统中的命令所需要的共享库文件,比如/bin和/sbin中的二进制文件。注意2:/lib文件夹的主要目的是存放特定的库,这些库是在/bin和/sbin目录里的工具所需要的库,/lib中的库可以是32位或64位。注意:在/usr/lib和/usr/lib相同的情况下(一个是另一个的符号链接),这些文件和每个应用的子目录都存在。注意:在这种情况下,/lib32和/lib64可能是库的目录,而/lib是与其中一个库的符号链接。

guoqx的专栏 4329

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

linux lib文件夹,Linux下的lib文件故障解决实例

说到这个LIB文件,先从一个小故障说起。某日开发说,一台测试用虚机可以PING通SSH不能连了。运维同学就赶紧去查,SSHD_CONFIG配置文件都正确啊,一点错误都没有,那为什么呢?测试下,不管连自己还是其他机,都是报错这里注意看,提示你有个libcom_err.so.2共享库文件找不到。询问开发,才了解他们测试一个软件,意外删除了某个库文件。那么在正常的相同虚机的机器查看下,再和出错的虚机比对...

weixin_35826166的博客 1617

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

linux下误删除lib64文件,Linux 下 lib 文件缺失的通用解决办法

经常安装或者编译一些工具的时候会遇到类似 lib.so.* 等文件缺失的提示。一般我们可以通过百度谷歌寻找解决办法,但是除了这些办法,我们还可以自己寻找包名,然后安装。安装sudo apt-get install apt-file上面安装了一个软件,用于从仓库索引中找到相关的包信息。更新索引软件安装完成需要使用一下命令索引。sudo apt-file update搜索相关包名例如我遇到的是 lib...

weixin_32171133的博客 1996

Linux下如何生成lib文件

在linux系统中,lib文件分为static lib 和shared lib。一般以后缀来标示,静态库以*.a标示,共享库以*.so标示。 1.生成static lib     建立两个头文件,plus.h minor.h定义函数int plus(int a, int b)

bulreed的专栏 5389

linux内核的运行需要用到根文件系统/lib里面的库文件吗?

奥奥

dianqicyuyan的博客 520

【转】Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢

有区别的。 /lib里面给的是root和内核所需so或者a之类的库文件,而/usr/lib是普通用户能够使用的。 Linux的程序有两种模式,这个你应该知道,是用户模式和内核模式,和这个也是有关系的,不再冗述。   ================ /lib和/usr/lib和/usr/local/lib的区别(zz) 文章分类:操作系统 简单说,/lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的. /lib/ — 包含许多被 /bin

fengyunjh的专栏 1万+

linux 链接 lib,Linux如何建立静态链接库.lib文件

通常我们所说的静态链接库就是.lib文件,文件一般比较大,能够将函数和数据编译到一个.lib文件中,那么linux系统要如何建立静态链接库呢?下面小编就给大家介绍下linux建立静态链接库的方法。主要有两步:1.编译源码2.制作库=====================================以两个简单的源码为例,示范静态库制作的具体流程1.编译源码hello_first.cvoid h...

weixin_32204013的博客 513

Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢

 http://blog.csdn.net/fengyunjh/article/details/6232894 有区别的。 /lib里面给的是root和内核所需so或者a之类的库文件,而/usr/lib是普通用户能够使用的。 Linux的程序有两种模式,这个你应该知道,是用户模式和内核模式,和这个也是有关系的,不再冗述。   ================ /lib和/usr/li

1192

linux alsa-lib 播放pcm文件

有时候开放音频需要测试一些pcm文件,为了方便开发,写了个播放pcm的demo,直接修改播放wav文件的代码得到的,可以看这篇博客,linux alsa-lib 播放wav文件 直接上代码 /* *作者:韦访 *优快云:https://blog.csdn.net/rookie_wei **/ #define ALSA_PCM_NEW_HW_PARAMS_API #include &lt;...

韦访的专栏 4111

linux中的lib文件的作用,linux中lib开头文件作用

lib文件一般来说,库文件有两种:动态库和静态库。1.动态库动态库(也叫共用库)是编译好的代码片段,在程序执行时由运行时连接文件(runtime linker)/lib/ld.so加载。这有点类似于windows下的dll文件。在提高效率方面,这样做可以节省系统在以下方面的开销:硬件设备:不同的程序可以共享相同的代码。内存:内核可以将库文件的拷贝存放在内存里以便进程之间共享。时间:只要你不再重新编...

weixin_36239971的博客 3071

linux复制lib.so文件,linux的lib函数库文件简述

1.什么是linux库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。程序库文件可以分为3种:---------------------------------------------------------------...

weixin_31109487的博客 1602

linux/windows下查看目标文件.a/.lib的函数符号名称

https://blog.csdn.net/listener51/article/details/77266824 1、linux下 (1)、 objdump -t 查看对象文件所有的符号列表;例如 objdump -t libtest.o (2)、nm列出目标文件(.o)的符号清单;例如 nm -s filename.a/filename.o/a.out (3)、...

whatnamecaniuse的专栏 1568
上一篇: Linux内核的ioctl函数学习
下一篇: warning no newline at the end of file
digu
博客等级 码龄23年 87粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值