C++ 导入库而不是链接?

问题描述

我是 C++ 的新手。当我编写一个程序时,我希望它编译成一个独立的可执行文件,但是对于 C++,有很多关于动态和静态链接的讨论。据我所知,这意味着使用的单独库是单独编译和链接的,而不是一起编译。

编译时间对我来说不是问题。我不明白为什么我要链接一个库而不是直接用我的代码编译它。当然,这会导致更好的优化和内联。

一个完美的例子是 tcmalloc。我想使用 tcmalloc 内存分配器,而不是捆绑的分析器,也不是静态或动态链接到它,而是通过内联优化将其直接编译到我的程序中。

我该怎么做?

解决方法

好的,C++ 编程的一部分是使用库。除非您在进行嵌入式编程或一些奇怪的事情,否则您可能永远不会编写至少不包含一些其他库的 C++ 程序。如果不出意外,您可以获得标准系统库,这样您就可以访问诸如 cout、fopen 或您尝试进行的任何系统调用之类的东西。

如果您出于性能原因想要内联代码,那么它应该作为定义的一部分出现在您的包含文件中。

“将所有内容编译在一起”既没有优点,也有很多缺点。首先,您可能无法访问大部分代码。然后,您必须知道要包含哪些代码并将其全部放入一个巨大的文件中。然后编译那个傻瓜,明天再来。