さまざまな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バージョンでどのようにコンパイルして実行しますか?

ベストアンサー1

おすすめ記事