Я знаю, что когда вы скомпилировать и скомпоновать программу C, связать его с библиотекойИспользование библиотеки C из программы, отличной от C: необходимо ли явно инициализировать библиотеку C «под капотом»?
- C
- C код запуска среды выполнения
Интересно, если я пишу программу (в новом язык или просто C без ссылки на этот код) и напрямую связать его с общей библиотекой кода C (например, zlib или gsl или fftw или что-то еще) и опустить библиотеку C и код запуска C (если моя программа загрузит сам внешний lib используя свою магию), будет ли это «просто работать»?
Я знаю, что в запуске CRT есть некоторый код инициализации, поэтому я задаюсь вопросом, как я могу вызвать требуемые функции, не зависнув от моего приложения от библиотеки C: поэтому загрузка внешней библиотеки C в этот момент вызовет необходимый код инициализации (если таковой имеется, это вопрос), и в противном случае просто загружать библиотеки/интерфейсы ОС.
Причина, по которой я спрашиваю, это то, что я хочу написать язык со стандартной библиотекой, которая напрямую связана с API-интерфейсом ОС, в отличие от большинства реализаций на C++, которые построены поверх библиотеки C.
Как этот «код моей программы» должен быть инициализирован точно? –
Обычная инициализация вашей библиотеки времени выполнения будет рассмотрена компилятором/компоновщиком. Инициализация вашего собственного кода, конечно же, является вашей ответственностью и может, например, выполняться в основной() процедуре или в функции, вызванной основной() процедурой. –