LINUX.ORG.RU

История изменений

Исправление 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)

Раст не отбрасывает неиспользуемые либы, а сразу линкует все и сразу.