我知道当你编译和链接一个 C 程序时,你把它链接到
- C 库
- C 运行时启动代码
我想知道我是否编写了一个程序(用一种新语言,或者只是 C 而没有链接到这个代码)并将它直接链接到一个 C 代码共享库(比如 zlib 或 gsl 或 fftw 之类的)并省略 C 库和 C 启动代码(假设我的程序将使用它的魔法加载外部库本身),这会“正常工作”吗?
我知道 CRT 启动中有一些初始化代码,所以我想知道如何在不让我的应用程序本身依赖于 C 库的情况下调用所需的函数:因此加载外部 C 库将调用必要的初始化代码(如果任何,这是问题),否则只需加载操作系统库/接口。
我问的原因是我想用一个标准库编写一种语言,它直接连接到 OS API,不像大多数 C++ 实现,它是建立在 C 库之上的。