다양한 Linux(Debian) 버전에서 컴파일하고 실행하는 방법

다양한 Linux(Debian) 버전에서 컴파일하고 실행하는 방법

Debian 10에서 gcc 8.3으로 컴파일:

root@debian:/home/mongo# ldd /home/mongo/build/opt/mongo/db/mongod
        linux-vdso.so.1 (0x00007ffe9f1c0000)
        libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f1d7012d000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f1d70105000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f1d700eb0               
...

그래서 나는 그것이 동적 링크로 컴파일되고 링크되었다고 확신합니다. gcc 8로 컴파일되었음에도 불구하고 실제로 ldd의 gcc 6 Runtime.so를 사용합니다.

libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc6183c1000)  
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc618042000)

gcc 6.3에 대한 동일한 실행 파일을 Debian 9에서 사용할 수 있습니다:

ldd /usr/bin/mongod
        statically linked

세그폴트가 발생했습니다

mongod[12662]: segfault at 8 ip 00007f25798fa821 sp 00007ffccda20090 error 4 in ld-2.24.so

그 이유는 무엇입니까? 다양한 Linux Debian 버전에서 어떻게 컴파일하고 실행하나요?

관련 정보