linux下程序编辑编译链接实验..docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux下程序编辑编译链接实验.

cp arm-linux-gcc-3.3.2.tar.bz2 / tar jxvf arm-linux-gcc-3.3.2.tar.bz2 安装后的交叉开发环境位于/usr/local/arm/3.3.2/目录下 执行如下命令,把arm-linux-gcc等工具的路径添加到PATH环境变量中: export PATH=/usr/local/arm/3.3.2/bin:$PATH 1.2.4 交叉开发工具链的认识 交叉开发工具链安装后位于xxx目录下,相应文件和目录的功能描述如下:1.2.5 交叉开发工具链的使用 首先会到/home/mike目录,建立test目录: mkdir test (2) arm-linux-gcc的使用 1. 编译C文件,生成elf可执行文件 利用vi建立h1.c 、h2.c、hello.c源文件,内容分别如下: //h1.c源文件 #include void hellofirst(void) { printf(The first hello! \n); } //h2.c 源文件 #include void hellosecond(void) { printf(The second hello! \n); } //hello.c 源文件 #include void hellosecond(void); void hellofirst(void); int main(int argc, char *argv[]) { hellofirst(); hellosecond(); return(0); } 编译以上3个文件,有如下几种方法: 方法1: [arm@localhost gcc]# arm-linux-gcc -c h1.c [arm@localhost gcc]# arm-linux-gcc -c h2.c [arm@localhost gcc]# arm-linux-gcc -o hello hello.c h1.o h2.o 方法2: [arm@localhost gcc]# arm-linux-gcc -c h1.c h2.c [arm@localhost gcc]# arm-linux-gcc -o hello hello.c h1.o h2.o 方法3: [arm@localhost gcc]# arm-linux-gcc -o hello hello.c h1.c h2.c (3) arm-linux-ar 和 arm-linux-ranlib的使用 –r libhello.a h1.o h2.o 为静态库建立索引 ranlib libhello.a 由静态库产生可执行文件 gcc –o hello hello.c libhello.a 用动态库编译 1、生成需要的动态库 gcc -shared -o libhello.so h1.o h2.o 2、将得到的动态库libhello.so放到/usr/local/lib/hello目录下 cp libhello.so /usr/local/lib/hello 3、修改环境变量LD_LIBRARY_PATH 首先修改文件/etc/ld.so.conf,添加一行内容/usr/local/lib/hello 接着执行/sbin/ldconfig文件 到此把我们自定义的动态库路径添加到了系统环境变量。 4、gcc –o libsohello hello.c –L/usr/local/lib/hello -lhello (4) arm-linux-strip的使用 main函数是C的入口函数,函数原型为 Int main(int argc,char *argv[ ],char *envp[ ] ); 其中argche argv用来传入命令行参数,envp用来传入环境变量。 Argc表示命令行参数的个数,而argv参数指向一个字符串数组,其中每一个字符串是一个命令行参数,同时,argv最后一个元素是NULL,表示数组的结束。需要注意的是shell认为命令中用空格隔开的各个部分都是参数,包括可执行的文件名本身。例如: ./test –n 3.4 它传入main函数的argc参数是3,而argv参数在内存中的布局如图示所示: #include stdio.h void hellosecond(void); void hellofirst(void); int main(int argc, char *argv[],char *envp[]) {int i; for(i=0;iargc;i++) printf(para %d: %s

文档评论(0)

bhzs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档