C 完全静态链接与叮当声

C 完全静态链接与叮当声,c,gcc,linker,clang,llvm,C,Gcc,Linker,Clang,Llvm,如何生成带有叮当声的完全静态二进制文件?我使用了以下命令: clang -flto <source files> -o <executable output> -fuse-ld=lld -static-libgcc -lc -Bstatic -m32 试图回答问题,但没有直接解决问题。 是否有可能生成完全独立的二进制文件?还是应该使用除libgcc之外的其他不同的C库实现 如果是,那么如果我有源代码,比如newlib?那么如何将其与clang链接?只需使用clang的-

如何生成带有叮当声的完全静态二进制文件?我使用了以下命令:

clang -flto <source files> -o <executable output> -fuse-ld=lld -static-libgcc -lc -Bstatic -m32
试图回答问题,但没有直接解决问题。 是否有可能生成完全独立的二进制文件?还是应该使用除
libgcc
之外的其他不同的C库实现


如果是,那么如果我有源代码,比如
newlib

那么如何将其与clang链接?只需使用clang的-static标志编译即可

就您的情况而言,请尝试:

clang -flto <source files> -o <executable output> -static -m32

linux门。so
是系统调用接口,
ld-linux。so
是ELF二进制解释器(请参阅:)。您可能可以获得一个静态链接版本的
libc
,但其他版本需要在那里。这就引出了一个问题:“为什么?”和“最终目的是什么?”除非你在做一个引导加载程序或诸如此类的东西……如果你静态链接
libc.so
,你通常会得到一个可执行文件,它的可移植性较差。我正试图在我的编译器中进行一些分析,我需要完全独立的二进制文件。你试过-static选项吗?您可能会发现您想要的一些库在静态形式下不可用。您可能可以找到静态版本,或者从源代码构建它们。我正在尝试在我的编译器中进行一些分析,我需要完全独立的二进制文件,所以这是分析编译器时的一个问题,您认为完全静态链接的二进制文件解决了什么问题?
clang -flto <source files> -o <executable output> -static -m32
[root@interserver ogrerobot.com]# ldd ./CppUtilsSpikes  
not a dynamic executable