Поскольку у меня нет «c ++ builder», я попробовал это с помощью MinGW.
С помощью простой команды компиляции и связывания вроде этой:
gcc -Wall -Werror -pedantic -O2 tz.c -o tz
Я получил те же ошибки:
C:\Users\###\AppData\Local\Temp\ccI8j8Mj.o:tz.c:(.text.startup+0x1f): undefined reference to `__imp__get_daylight'
C:\Users\###\AppData\Local\Temp\ccI8j8Mj.o:tz.c:(.text.startup+0x3a): undefined reference to `__imp__get_timezone'
C:\Users\###\AppData\Local\Temp\ccI8j8Mj.o:tz.c:(.text.startup+0x61): undefined reference to `__imp__get_tzname'
collect2.exe: error: ld returned 1 exit status
Один grep обнаружил библиотеку libucrtbase.a
(среди прочих), содержащую символ _get_daylight
. Добавление этой библиотеки к команде:
gcc -Wall -Werror -pedantic -O2 tz.c -lucrtbase -o tz
Это дало работающую программу.
Остальные библиотеки libmsvcr*.a
в разных версиях, я пробовал только одну из них. Это тоже было успешным.
Редактировать:
С не столь актуальным «лязгом» мне даже не пришлось добавлять библиотеку.
clang -Wall -Werror -pedantic -O3 tz.c -o tz-clang.exe
Это скомпилировано и скомпоновано без каких-либо ошибок и отлично работает.
(clang version 7.0.1 (tags / RELEASE_701 / final), Target: x86_64-p c - windows -мсв c)