社区
C语言
帖子详情
菜鸟问题,高手帮忙解答!!!!
zjjysoft
2005-09-20 09:47:01
一个很简单的程序
#include<stdio.h>
main()
{
printf("hello world\n");
}
输出一个字符串。
以我的理解,头文件“stdio.h”只是申明了函数prinf
的原型,具体实现应该在一个库文件(*.obj)里,我有个疑问,c链接
程序在链接过程中是怎么找到函数“printf”所在的库文件,然后把它跟我上面
编写的程序链接起来,而成为一个可执行文件的。希望高手帮我解答,这个问题困扰了我
好长时间了。
...全文
118
6
打赏
收藏
菜鸟问题,高手帮忙解答!!!!
一个很简单的程序 #include main() { printf("hello world\n"); } 输出一个字符串。 以我的理解,头文件“stdio.h”只是申明了函数prinf 的原型,具体实现应该在一个库文件(*.obj)里,我有个疑问,c链接 程序在链接过程中是怎么找到函数“printf”所在的库文件,然后把它跟我上面 编写的程序链接起来,而成为一个可执行文件的。希望高手帮我解答,这个问题困扰了我 好长时间了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
megaboy
2005-09-20
打赏
举报
回复
各个编译器查找用户文件的方式是不一样的。我假设你使用的是tc。
你应该先把abc.obj文件使用tlib转换为abc.lib,然后把abc.lib跟你的源文件一起建立一个工程编译,就可以了。
zjjysoft
2005-09-20
打赏
举报
回复
没人知道吗?自己顶,郁闷!!!!!
zjjysoft
2005-09-20
打赏
举报
回复
谢谢上面各位帮我解答,但如果我自己写了个库--abc.obj,
里面有个方法test(),然后我在另一个程序中引用它,如果我把
abc.obj放在bin目录下,程序也会出错。所以我的意思是为什么
系统定义的库函数链接程序可以正确链接,而自己定义的库函数不行呢?????
junguo
2005-09-20
打赏
举报
回复
在你的编译器的目录下会有一个bin目录,库文件编译过的目标文件就在这个目录下。
编译器在链接的过程中,会到这些obj文件中找到你所引用的函数,并把它们引用到程序中去。
deping_chen
2005-09-20
打赏
举报
回复
连接程序(link.exe)连接的是.obj(s) + .lib(s) + .res文件,形成可执行文件。
具体到你这个问题,连接程序会在C运行库的lib文件找到printf函数的名称,在可执行文件的引入函数表增加条目,该条目记录引入的函数名及其所在模块名并留下函数地址的空间。加载程序会执行动态连接,在引入函数表填写该函数的虚拟地址。这样程序就可以顺利执行了。
yangyzqo
2005-09-20
打赏
举报
回复
*.obj好像是目标文件?!
Python从
菜鸟
到
高手
系列专题(上)
本专题包含了10个课程,涵盖了Python语言的核心部分,包括Python环境安装和配置、Python基础知识、Python条件、循环,列表、元组、字典、字符串、函数、异常、类、对象、属性、静态方法、类方法、监控属性的变化、...
求
高手
帮忙
解答
(源代码网址为:https://github.com/xuwangyin/GA-svm),在regression中解决了一部分python2和3不兼容的情况后运行程序,遇到了一个
问题
,
菜鸟
的我搞了两天都没明白,请大家
帮忙
解决一下。 显示类型错误,但具体...
不理解,如果有
高手
看到了,请
帮忙
解答
,谢谢啦~
例1:<!...<...<head><meta charset="utf-8">...
菜鸟
教程(runoob.com)</title></head><body><p> constructor 属性返回变量或对象的构造函数。</p><p id=...
成为
高手
的必经之路——学会调试代码(
菜鸟
必读)
任何一个编程者都少不了要去调试代码,不管你是
高手
还是
菜鸟
,调试程序都是一项必不可少的工作。一般来说调试程序是在编写代码之后或测试期修改Bug 时进行的,往往在调试代码期间更加能够体现出编程者的水平高低以及...
菜鸟
求
解答
刚学C# 有很多不懂的地方 希望
高手
帮忙
解答
:SqlConnection conn = new SqlConnection("server=192.168.0.46;database=pubs;User Id=sa;pwd=123456"); SqlCommand cmd = new SqlCommand("SELECT * FROM employee", ...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章