gcc编译,ld连接
来源:互联网 发布:linux shell脚本 pause 编辑:程序博客网 时间:2024/05/03 19:41
/*****************************************************************************************************************************
原文地址:http://blog.csdn.net/lanxinju/article/details/6078045
评价:照做了,但是没有成功。不过也算找到同路人了。。。
*******************************************************************************************************************************/
编写一个hello world的简单程序(hello.c):
1: #include <stdio.h>
2:
3: int main(void)
4: {
5: printf("Hello world!/n");
6:
7: return 0;
8: }
直接编译很简单:
gcc –o hello.o hello.c
但是如果使用gcc编译,然后使用ld连接,就会出错:
gcc –c –o hello.o hello.c
ld –o hello hello.o
连接时警告没有入口_start(程序原始的入口为_start,执行一些堆栈初始化工作,然后再跳入main函数),生成的hello文件无法执行。
说明分开连接的时候少做了一些事,使用gcc -v选项查看gcc编译时的信息:
gcc –o hello.o hello.c –v
最终的解决方案是:
gcc –c –o hello.o hello.c
ld –o hello –dynamic-linker /lib/ld-linker.so.2 /usr/lib/crt1.o /usr/lib/crti.o –l hello.o /usr/lib/ctrn.o
编译就可以了。
- gcc编译,ld连接
- gcc编译,ld连接
- GCC/LD编译链接潜规则
- GCC-LD 连接脚本分析--uboot.lds
- GCC-LD 连接脚本分析--uboot.lds
- GCC编译连接
- [编译]GCC 连接顺序
- gcc 编译连接
- GCC 编译出错 /usr/bin/ld: cannot find -lc
- gcc编译错误XX/bin/ld:cannot find -lxxx
- Linux gcc编译error:"collect2: ld returned 1 exit status"
- GCC的编译和连接
- GCC编译及连接过程
- ld: gcc linker
- ARM-GCC-LD脚本
- gcc as ld概述
- gcc ld脚本分析
- ARM-GCC-LD脚本
- 程序开发可能引起的死机情况
- Javascript学习系列(五):JavaScript cookie详解
- poj 1099解题报告
- CreateProcess
- [汇总]Flex面试题及答案
- gcc编译,ld连接
- 软件设计的真谛
- SQuirreL SQL Client (小松鼠) 数据库连接工具
- 根据毫秒数转换为时分秒(格式为00:00:00)
- 边沿触发和低电平触发的区别
- 最大公约数与最小公倍数
- LINUX下VIM插件安装
- [读书笔记]程序员的自我修养(12)
- C#获取时间的方法及格式转变