使用非C程序中的C库:是否有必要明确初始化“引擎盖下”的C库?

我知道当你编译和链接一个C程序时,你将其链接

> C库
> C运行时启动代码

我想知道我是否编写了一个程序(使用新语言,或只是C而不链接到此代码)并将其直接链接到C代码共享库(比如zlib或gsl或fftw或其他东西)并省略C库和C启动代码(假设我的程序将使用它的魔法加载外部lib本身),这会“正常工作”吗?

我知道在CRT启动时有一些初始化代码,所以我想知道如何在不让我的应用程序本身依赖于C库的情况下调用所需的函数:所以加载外部C库将在那时调用必要的初始化代码(如果任何,这是问题),否则只需加载OS库/接口.

我问的原因是我想用一个标准库编写一种语言,它直接挂钩到OS API,不像大多数C实现,它建立在C库之上.

最佳答案 看看这里
https://blogs.oracle.com/ksplice/entry/hello_from_a_libc_free

因此,您可以启动程序而不依赖于包含libc的任何库,然后可以根据需要加载和使用库.

点赞