在C++中是否可能避免标准库链接?

5
众所周知,在编译和链接C++程序时,标准库会被自动链接。有没有可能避免这种情况?我已经写了自己的本地库,并且只想链接它。

4
是的,实现有办法避免链接标准库。但是它们并不完全相同,因此您需要查看编译器的文档。看起来一个相当常见的选项是将-nostdlib标志传递给C++编译器。 - bames53
这将取决于编译器,因此您应该告诉我们您正在使用哪个编译器。 - zneak
1
那么就像@bames53所说的那样,-nostdlib是你要找的。为了确保你不会在不知情的情况下引入任何依赖项,你可能还想使用-nostdinc,这将告诉编译器不要查找stdlib头文件。 - zneak
2个回答

7

是的,这是可能的,至少如果您使用的是Visual Studio C++或g++。

编译器选项

如果您使用的是Visual Studio C++,请查找选项 /X

如果您使用的是g++,请查找选项-nostdinc++

链接器选项

如果您使用的是Visual Studio C++,请查找选项 /NODEFAULTLIB

如果您使用的是g++,请查找选项-nostdlib


1
对于编译器而言,g++ 是 -nostdinc++,MSVC 则是 /X - ManuelAtWork
@ManuelAtWork,感谢您提供的额外信息。 - R Sahu

2
如果您使用的是 g++,您可以使用 g++ 选项 -nostdlib 来避免自动链接到两个标准库和启动文件;并使用选项 -nodefaultlibs 来仅自动避免链接到标准库,但它仍然会自动链接到启动文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接