gpt4 book ai didi

linux - 在不依赖任何共享库的 Linux 上构建可执行文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:02 24 4
gpt4 key购买 nike

环境:Ubuntu 14.04。海合会 4.8.2

我正在开发 C++ 控制台应用程序。当我在可执行文件上运行“ldd”时,我看到以下内容:

linux-vdso.so.1 =>  (0x00007fffe495e000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9ffa754000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9ffa38e000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9ffa087000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9ffaa6e000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9ff9e71000

我想知道是否可以在 gcc/linker 上定义标志,以便最终的可执行文件不依赖于任何共享库。

最佳答案

只需在链接时添加 -static :-)

不仅出于安全原因,应避免静态链接。

顺便说一句:据我所知,无法从动态库创建静态库。因此,如果您只有共享库,则无法链接静态。

关于linux - 在不依赖任何共享库的 Linux 上构建可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25237583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com