История изменений
Исправление baist, (текущая версия) :
Плюсишка
> cat hello.cpp
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}
rust-and-c > g++ -s -O3 hello.cpp
rust-and-c > du --apparent-size --bytes a.out
14376 a.out
rust-and-c > ldd a.out
linux-vdso.so.1 (0x00007ffe6ebf5000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f6a023cc000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f6a02247000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f6a0222d000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f6a02069000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f6a0259d000)
Странно. Либ больше но размер тот же.
Исходная версия baist, :
Плюсишка
> cat hello.cpp
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}
rust-and-c > g++ -s -O3 hello.cpp
rust-and-c > du --apparent-size --bytes a.out
14376 a.out
rust-and-c > ldd a.out
linux-vdso.so.1 (0x00007ffe6ebf5000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f6a023cc000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f6a02247000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f6a0222d000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f6a02069000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f6a0259d000)
Раст не отбрасывает неиспользуемые либы, а сразу линкует все и сразу.