0

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

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

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

我怎么做?

4

1 回答 1

0

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

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

“将所有内容编译在一起”没有任何优势和一大堆劣势。首先,您可能无法访问大部分代码。然后,您必须知道要包含哪些代码并将其全部归类到一个巨大的文件中。然后编译那个傻瓜,明天再回来。

于 2021-04-29T18:16:26.293 回答