Linker 什么是链接上下文中的通用实现?

Linker 什么是链接上下文中的通用实现?,linker,Linker,在jemalloc的“”部分中,将其链接到应用程序的一种可能方法是: 在构建时将jemalloc链接到应用程序中,但将其用作通用的malloc实现: cc app.c-o app-L${JEMALLOC_PATH}/lib-Wl,-rpath,${JEMALLOC_PATH}/lib-ljemalloc 据我所知,这个命令将导致静态和动态链接的发生。为什么要这样做?“将其用作通用malloc实现”是什么意思?这意味着jemalloc将取代标准的malloc功能。将其与下一个选项进行对比: 使用A

在jemalloc的“”部分中,将其链接到应用程序的一种可能方法是:

在构建时将jemalloc链接到应用程序中,但将其用作通用的malloc实现:

cc app.c-o app-L${JEMALLOC_PATH}/lib-Wl,-rpath,${JEMALLOC_PATH}/lib-ljemalloc


据我所知,这个命令将导致静态和动态链接的发生。为什么要这样做?“将其用作通用malloc实现”是什么意思?

这意味着
jemalloc
将取代标准的
malloc
功能。将其与下一个选项进行对比:

使用API前缀编译jemalloc(请参阅--with jemalloc prefix configure选项),在构建时如上所述链接到jemalloc,但使用jemalloc与系统分配器不同


在这种情况下,您可以调用类似于
jemalloc()
的东西,而不是
malloc()
来使用它。

好的,我想我一开始就完全弄错了。因此,“通用实现”一词与链接毫无关系。此外,我刚刚意识到实际上没有发生静态链接,对吗?Rpath是一个典型的动态链接参数,将参数作为动态库的搜索路径嵌入生成的二进制文件中。