Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Gcc g+的标志+;使用-nostartfiles-nodefaultlibs-nostdlib时的静态链接_Gcc_G++_Static Linking - Fatal编程技术网

Gcc g+的标志+;使用-nostartfiles-nodefaultlibs-nostdlib时的静态链接

Gcc g+的标志+;使用-nostartfiles-nodefaultlibs-nostdlib时的静态链接,gcc,g++,static-linking,Gcc,G++,Static Linking,我一直在努力寻找合适的.a和相关标志,以便在Linux下静态链接应用程序。我知道-静态存在,但我不能使用它,因为有一个特定的,所以我必须链接到 换句话说,我正在寻找合适的标志来静态链接所有东西,除了一个特定的SO 谢谢。在我的工作场所,我们使用-Bstatic和-Bdynamic,但它们是链接器ld的选项。您可以使用-Wl选项使用gcc指定它们 g++-o app-Wl,-Bstatic-llib1-llib2-llib3-Wl,-Bdynamic-llib4 app.o 上面显示了将lib1、

我一直在努力寻找合适的.a和相关标志,以便在Linux下静态链接应用程序。我知道-静态存在,但我不能使用它,因为有一个特定的,所以我必须链接到

换句话说,我正在寻找合适的标志来静态链接所有东西,除了一个特定的SO


谢谢。

在我的工作场所,我们使用-Bstatic和-Bdynamic,但它们是链接器ld的选项。您可以使用-Wl选项使用gcc指定它们

g++-o app-Wl,-Bstatic-llib1-llib2-llib3-Wl,-Bdynamic-llib4 app.o


上面显示了将lib1lib2lib3链接为静态库和将lib4链接为共享对象库的命令行。

您确实需要说明您希望静态链接的内容和动态链接的内容。谢谢,我为@Kurt的答案添加了一个推荐词。谢谢,这很有帮助。尽管libc/m/dl由于某些原因仍然是动态的。我正在链接所需的动态libfoo.so,它动态链接lib/c/m/dl。这就是我的应用程序没有静态链接它们的原因吗?有没有办法强迫libc/m/dl在应用程序中静态链接,但仍然动态链接libfoo。那么?乔,libc、m和dl的静态版本存在吗?通常,他们只有共享版本可用,以便操作系统供应商可以独立于您的应用程序进行更新。@JosephGarvin他们有,我的在/usr/lib/i386 linux gnu中。虽然我确信我会在其他项目中使用g++s-static标志,但现在它完成了我需要的110%,它静态地链接了太多的heh。我意识到c、m和dl实际上保证会出现在系统中,我只是想非常谨慎。