Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux GCC4.8.0版本大小在OSX和Ubuntu上有很大差异_Linux_Macos_Ubuntu_Gcc_Compiler Construction - Fatal编程技术网

Linux GCC4.8.0版本大小在OSX和Ubuntu上有很大差异

Linux GCC4.8.0版本大小在OSX和Ubuntu上有很大差异,linux,macos,ubuntu,gcc,compiler-construction,Linux,Macos,Ubuntu,Gcc,Compiler Construction,GCC4.8.0发布后,我立即使用ISL和CLooG在OSX10.8上构建了它。完整构建的大小约为3.8GB(发布焦油球+未修复的源代码+所有生成的对象)。我记不起我在那个构建中使用了哪个编译器。我想GCC不会听到苹果的叮当声吧?那么编译器可能是默认的GCC4.2.1/usr/bin;所有其他版本的GCC都安装在其他地方,我确信我没有自定义CC 今天我在Ubuntu12.04上再次构建了GCC4.8.0,这次没有ISL和CLooG。完整构建的大小约为5.3 GB(仍然是发布的tar balls+

GCC4.8.0发布后,我立即使用ISL和CLooG在OSX10.8上构建了它。完整构建的大小约为3.8GB(发布焦油球+未修复的源代码+所有生成的对象)。我记不起我在那个构建中使用了哪个编译器。我想GCC不会听到苹果的叮当声吧?那么编译器可能是默认的GCC4.2.1
/usr/bin
;所有其他版本的GCC都安装在其他地方,我确信我没有自定义
CC

今天我在Ubuntu12.04上再次构建了GCC4.8.0,这次没有ISL和CLooG。完整构建的大小约为5.3 GB(仍然是发布的tar balls+未修复的源代码+所有生成的对象)。此版本的编译器是GCC4.7.3


这很有趣。为什么尺寸如此不同?这是否表明Mach-O比ELF更节省空间?或者还有其他因素吗?

一个是64位的,另一个是32位和64位的


如果你想比较Mach-O和ELF,你可能需要从两个版本中获取一些有代表性的文件。

GCC通常在第2或第3阶段进行自编译。…@BasileStrynkevitch好的,那么为什么大小不同呢?对于64位的东西,没有。我没有给出任何架构配置选项。实际上x86_64-apple-darwin12.3.0和x86_64-unknown-linux-gnu都基于相同的硬件,gnu/linux是我的Ubuntu虚拟机。对于代表性文件,
gcc-4.8.0
1.0M(达尔文)vs 3.0M(linux),
g++-4.8.0
1.0M vs 3.0M,
gcj-4.8.0 1.0M
vs 3.1M,等等,
gfortran-4.8.0
1.0M vs 3.0M。这里的图案很好。但是像
aot-compile-4.8.0
,我不知道它是什么,是3.0K对3.1K。已知马赫数不包括调试部分,对吗?但是我想调试信息应该在构建中的某个地方(否则,
gdb
将不起作用)。我试图
readelf
,但看不到任何有趣的东西。另一方面,我从来没有尝试过otool,所以我没有读Mach-O。