Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux上构建不依赖任何共享库的可执行文件_Linux_Gcc - Fatal编程技术网

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

在Linux上构建不依赖任何共享库的可执行文件,linux,gcc,Linux,Gcc,环境: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 (0x000

环境: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
:)

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


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

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

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


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

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

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


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

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

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



顺便说一句:我知道没有办法从动态库创建静态库。因此,如果您只有共享库,就不能链接静态库。

这难道不要求静态构建的库可用吗?这需要在链接期间在生成计算机上有适当的库,但在执行时没有其他库。这有一些缺点。应用程序使用-实际上,网络应用程序-应该更好地动态链接。看看OP是否特别喜欢冒险,他是否可以建立自己的静态库;)不过,这也需要一个很好的理由。谢谢你们的回复。当硬盘或操作系统变得不稳定时,需要运行此可执行文件。我们的目标是它不依赖于任何共享库。这难道不要求静态构建的库可用吗?这需要在链接期间在构建机器上有适当的lib,但在执行时没有其他lib。这有一些缺点。应用程序使用-实际上,网络应用程序-应该更好地动态链接。看看OP是否特别喜欢冒险,他是否可以建立自己的静态库;)不过,这也需要一个很好的理由。谢谢你们的回复。当硬盘或操作系统变得不稳定时,需要运行此可执行文件。我们的目标是它不依赖于任何共享库。这难道不要求静态构建的库可用吗?这需要在链接期间在构建机器上有适当的lib,但在执行时没有其他lib。这有一些缺点。应用程序使用-实际上,网络应用程序-应该更好地动态链接。看看OP是否特别喜欢冒险,他是否可以建立自己的静态库;)不过,这也需要一个很好的理由。谢谢你们的回复。当硬盘或操作系统变得不稳定时,需要运行此可执行文件。我们的目标是它不依赖于任何共享库。这难道不要求静态构建的库可用吗?这需要在链接期间在构建机器上有适当的lib,但在执行时没有其他lib。这有一些缺点。应用程序使用-实际上,网络应用程序-应该更好地动态链接。看看OP是否特别喜欢冒险,他是否可以建立自己的静态库;)不过,这也需要一个很好的理由。谢谢你们的回复。当硬盘或操作系统变得不稳定时,需要运行此可执行文件。我们的目标是它不依赖于任何共享库。