我知道在编译和链接C程序时,需要链接以下两个东西:
- C库
- C运行时启动代码
我想知道,如果我写一个程序(用一种新语言或者只是C语言,但不连接到这些代码),并直接将其链接到一个C共享库(比如zlib、gsl、fftw等),省略C库和C启动代码,假设我的程序会使用自己的“魔法”来加载外部的库,那么这样做是否“可行”?
我知道CRT startup中有一些初始化代码,所以我想知道如何调用所需的函数,而不必让我的应用程序依赖于C库:因此,在那个点上,加载外部的C库将调用必要的初始化代码(如果有的话),否则只会加载OS库/接口。
我提出这个问题的原因是,我想编写一个带有标准库的语言,它直接钩取操作系统API,与大多数C++实现不同,后者是在C库之上构建的。