用MDK调试ARM工程,想从汇编(.S)程序中跳转到C程序(.C)中执行,可是编译的时候总是先编译链接C文件。

用MDK调试ARM工程,想从汇编(.S)程序中跳转到C程序(.C)中执行,可是编译的时候总是先编译链接C文件。,第1张

startup 文件里面的 __main 跟 main.c 里面的main 函数不是一回事,请注意区别不要混运笑淆。

startup.s 的执散悄凯行肯定是冲唤在 c文件之前的!

哥们,这么理解是对的,不过源梁笑感觉有点表面。

建议看看计算机一些原理,像你说的这个问题我会想到,计算机最终只能识别二进制码,

所以其实不管我们一切啥语言,最终都渣简是通过编译器编译成二进制码,计算机才能识别

而去运行,而C语言编写的程序,肯定是要经过一系列的编译,链接,生成可执行的文件。

在windows系统中,执行文件都是.exe为扩展名的。不过在linux系统中就不一样了,linux

系统并不区分扩展名,所以也就无所谓什么.exe之类的文件,只要知道最终生成可执行的

二进制文件就可以了。雹含

编译就是把C代码转换猜慎答成CPU可执行的机器指令,每个.c文件生成一个.obj文件。穗慧

链接就是把生成的(多个)

.obj

文件及用到的库文件(.lib)一起组合生成可孝正执行文件(.exe)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12422130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存