【问题标题】:Is it possible to avoid standard library linking in c++是否可以避免 C++ 中的标准库链接
【发布时间】:2014-05-08 05:34:51
【问题描述】:

众所周知,当我们编译和链接 c++ 程序时,标准库会自动链接进来。有可能避免这种情况吗?我已经编写了自己的本地库,我只想链接它。

【问题讨论】:

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

标签: c++ c++-standard-library


【解决方案1】:

是的,至少在您使用 Visual Studio C++ 或 g++ 时是可能的。

编译器选项

如果您使用 Visual Studio C++,请查找 option /X

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

链接器选项

如果您使用 Visual Studio C++,请查找 option /NODEFAULTLIB

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

【讨论】:

  • 对于编译器,g++ 为-nostdinc++,MSVC 为/X
  • @ManuelAtWork,感谢您提供更多信息。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2021-10-27
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    相关资源
    最近更新 更多