热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

从不同目录编译同一c程序会生成不同大小的目标代码

如何解决《从不同目录编译同一c程序会生成不同大小的目标代码》经验,为你挑选了1个好方法。

我的交流程序保存在不同的目录“ source1 / abc.c”和“ source2 / abc.c”中。我想在“ object1 / abc.o”和“ object2 / abc.o”中生成目标代码。source1和source2目录中的abc.c程序都相同。但是在编译之后,对象1和对象2的两个对象(即abc.o)的大小都不同。我正在使用相同的标志进行编译。

我尝试从其他目录(除object1和object2之外)编译代码,并且编译后的大小相同。

cc -c source1/abc.c -DLINUX -D_LARGE_THREADS -D_THREAD_SAFE -D_REENTRANT -pthread -D_GNU_SOURCE -g -fPIC -O3  -lpthread  -lm  -lrt  -o object1/abc.o
cc -c source2/abc.c -DLINUX -D_LARGE_THREADS -D_THREAD_SAFE -D_REENTRANT -pthread -D_GNU_SOURCE -g -fPIC -O3  -lpthread  -lm  -lrt  -o object2/abc.o

abc.o的大小应该相等,还是取决于运行它的目录?编译c程序时有哪些依赖性?



1> 小智..:

您正在使用-g选项进行编译,该选项将调试信息添加到目标文件中。它们可能包含源文件的路径信息,因此不同的路径会导致不同的符号和不同的文件总大小。


推荐阅读
author-avatar
范大少微博劳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有