社区
C语言
帖子详情
库函数是怎么编译的
逍遥兮容与
2012-03-16 10:07:51
比方说对文件读写的库函数,最终还是会涉及到系统调用,库函数里应该没有系统调用的代码在的吧,系统调用的代码应该在系统内存的某个地方,但我们的程序不是被编译成二进制了么,那这里的过程是怎么编译的?
...全文
238
8
打赏
收藏
库函数是怎么编译的
比方说对文件读写的库函数,最终还是会涉及到系统调用,库函数里应该没有系统调用的代码在的吧,系统调用的代码应该在系统内存的某个地方,但我们的程序不是被编译成二进制了么,那这里的过程是怎么编译的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
逍遥兮容与
2012-03-25
打赏
举报
回复
没有系统地学,感觉思维很混乱。。
逍遥兮容与
2012-03-25
打赏
举报
回复
[Quote=引用 6 楼 muyi66 的回复:]
引用 5 楼 zzzz3621 的回复:
引用 4 楼 muyi66 的回复:
库函数可以通过调用系统 API 的方式来使用操作系统的文件系统。
问题是调用系统API 这个过程怎么实现的,编译成了什么?
就像用户自己定义的dll文件差不多。编译器通过API的头文件知道如何调用它们,检查语法错误等等,然后把对库函数里对API函数的调用写进目标代码里。
[/Quote]
抱歉,没注意到有回复
学操作系统的时候有讲到,程序要做到 地址独立和地址保护, 那我们的系统调用是跳到操作系统系统的代码片段里了么?我就是对这个有点不明白,如果跳了,又是怎么跳的呢? 你讲到的:对库函数里对API函数的调用写进目标代码里, 编译完的不是虚拟地址么?对API函数的调用的,具体是怎么调呢?
muyi66
2012-03-16
打赏
举报
回复
[Quote=引用 5 楼 zzzz3621 的回复:]
引用 4 楼 muyi66 的回复:
库函数可以通过调用系统 API 的方式来使用操作系统的文件系统。
问题是调用系统API 这个过程怎么实现的,编译成了什么?
[/Quote]就像用户自己定义的dll文件差不多。编译器通过API的头文件知道如何调用它们,检查语法错误等等,然后把对库函数里对API函数的调用写进目标代码里。
逍遥兮容与
2012-03-16
打赏
举报
回复
[Quote=引用 4 楼 muyi66 的回复:]
库函数可以通过调用系统 API 的方式来使用操作系统的文件系统。
[/Quote]
问题是调用系统API 这个过程怎么实现的,编译成了什么?
muyi66
2012-03-16
打赏
举报
回复
库函数可以通过调用系统 API 的方式来使用操作系统的文件系统。
为了法克方便面
2012-03-16
打赏
举报
回复
动态链接库
kyle
2012-03-16
打赏
举报
回复
库里已经都把系统调用的头文件都包含打包了
fkwcowboy
2012-03-16
打赏
举报
回复
如果是LINUX系统
比如说你调个open函数 顺序应该是这样的
open()-> gcc(编译并链接依赖的函数库) -> glibc
glibc里面有C库函数的实现,而且它不需要依赖任何其他的库就可以完成自编译
不知道这么解释你能明白么
STM32CUBEIDE
编译
库函数
项目及库文件调用
本文介绍了如何使用STM32CUBEIDE创建和
编译
库函数
项目,通过实例演示了加法函数从创建到
编译
成库文件的全过程,并详细讲解了如何在STM32项目中调用这些库文件。
IAR中将部分文件
编译
成
库函数
.a及如何调用
库函数
本文详细介绍如何将源代码
编译
成静态库(.a)文件,以及如何在项目中引入并使用这些静态库,旨在帮助开发者保护源代码的同时,向第三方提供
库函数
。
(1)基础cmake
编译
与调用
库函数
的使用
博客介绍了基础cmake
编译
与调用
库函数
的使用。基本cmake
编译
方面,可通过g++命令
编译
,工程依赖复杂时用cmake更合适。还提到CMakeLists.txt有无垃圾文件的情况。在cmake
库函数
调用上,编写
库函数
代码,连接成静态或动态库,添加相关文件到CMakeLists.txt并
编译
运行。
【qt】程序
编译
通过,但是无法跳转到
库函数
声明的位置
本文解决了一个常见的交叉
编译
问题:程序能够
编译
成功,但在尝试调用
库函数
时失败,并且在包含库文件的语句下出现波浪线提示。原因是工程文件未正确配置系统头文件路径。解决方案是在工程文件中添加系统头文件目录。
linux下用gcc
编译
使用了math
库函数
的程序出错的解决方法
本文介绍了在Linux环境下使用GCC
编译
含有math
库函数
的程序时遇到未定义引用错误的解决步骤。通过使用-lm参数指定链接数学库libm.so,解决了
编译
和连接过程中的问题。
C语言
70,039
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章