我知道,當你編譯和鏈接C程序,你從非C程序中使用C庫:是否有必要明確地初始化「底層」C庫?
- C庫鏈接它
- C運行時啓動代碼
我不知道如果我寫一個程序(在新語言,或只是C而不鏈接到此代碼),並直接將其鏈接到C代碼共享庫(比如zlib或gsl或fftw或其他),並省略C庫和C啓動代碼(假設我的程序將加載外部庫本身使用它的魔法),這將「只是工作」?我知道我在CRT啓動時有一些初始化代碼,所以我不知道如何讓我的應用程序本身不依賴於C庫而調用所需的函數:因此加載外部C庫將在此處調用必要的函數初始化代碼(如果有的話,這是問題),否則只是加載OS庫/接口。
我問的原因是我想用一個標準庫編寫一種語言,它直接掛接到OS API,不像大多數C++實現,它建立在C庫之上。
這個'我的程序代碼'是如何完全初始化的? –
運行時庫的正常初始化將由編譯器/鏈接器處理。當然,您自己的代碼的初始化是您的責任,並且可以在main()例程中或在main()例程中調用的函數中完成。 –