b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

strchr函数返回_strchr函数是什么缩写_c++ strchr函数(12)

电脑杂谈  发布时间:2017-02-22 07:23:41  来源:网络整理

6.9.1、自制动态链接库:<1>动态链接库的后缀名是.so(对应windows系统中的dll),静态库的扩展名是.a .

<2>第一步:创建一个动态链接库。 gcc aston.c -o aston.o -c -fPIC (-fPIC表示设置位置无关码)

gcc -o libaston.so aston.o -shared (-shared表示使用共享库)

注意:做库的人给用库的人发布库时,发布libxxx.so和xxx.h即可。

第二步:使用自己创建的共享库。gcc cdw.c -o cdw -lmax.so -L ./动态链接库 -I ./动态链接库

第三步:上述编译成功了,但是在 ./cdw 执行时会报错,原因是采用动态链接,在可执行文件只是做了一个标记,标记是使用了哪个函数库的哪个函数。

并没有将库函数加载到源文件中,所以可执行文件很小,在执行时,需要立即从系统里面找到使用到的函数库,然后加载到内存中,在linux系统中

默认是从 /usr/bin 中寻找,(不确定:如果使用shell中运行)会先执行环境变量的路径然后再查找 /usr/bin;所以我们可以用两种办法解决运行的问题

第四步:将动态库 libmax.so 复制到 /usr/lib 下面,但是如果以后所有的库都这样放的话,会越来越臃肿,导致运行速度变慢(一个一个查找);或者是新添加一个环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/hgfs/share/include (将库 libmax.so 复制到这个路径下面)这样就可以运行了。

<3>使用 ldd 命令判断一个可执行文件是否能运行成功; ldd cdw

linux-gate.so.1 => (0xb77a8000)

libmax.so => not found //发现 not found意思就是没有找到对应的函数库

libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb75e2000)

/lib/ld-linux.so.2 (0xb77a9000)

}

七、存储类&作用域&生命周期&链接属性(7.2 ?虚拟地址技术?)

{

7.1、概念词:存储类(栈、堆、数据区、.bss段、.text段)

作用域(代码块作用范围,也就是变量作用的范围)

生命周期(变量的诞生和死亡)

链接属性(外链接属性、内链接属性、无连接属性)

7.2、Linux下的内存映射(分配情况、组织情况):见图内存映射。其中有关进程的空间,如进程控制块、页表等都是在内核里面的。文件区是映射外部文件的,如打开记事本,那么这个文件临时

c++ strchr函数_strchr函数返回_strchr函数是什么缩写

存放在文件区域。(见引用资料)

问题:虚拟地址技术? 解决:后期在Linux应用/网络编程会讲。

OS下和裸机下C程序加载执行的差异? 解决:在arm裸机第十六部分有介绍。

7.3、存储类关键字:<1> auto 自动的(一个用法:修饰局部变量,在定义变量时可以省略) 【外链接:与第二个c文件链接】【内链接:只与本c文件链接】【无连接:就是无链接】

<2> static 静态的(有两个用法,第一个是修饰局部变量,意思是当作全局变量,存放在数据区,作用域只是定义的那个函数范围,生命周期和整个程序一样,属于无连接

第二个是修改全局变量/函数,意思是这个全局变量/函数只在当前c文件有效,其他c文件是不能使用它的,属于内链接,普通全局变量属于外连接)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33816-12.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 付荣
      付荣

      是哪个银行的

    • 朱伟娜
      朱伟娜

      完全物质化的叫兽

      • 闫超琪
        闫超琪

        日本军舰击中定远镇远数百发炮弹

    • 凯特贝金塞尔
      凯特贝金塞尔

      就你这智商也学人借打假之名来坑人

    热点图片
    拼命载入中...