Ваш код не связан с библиотекой Tcl, поэтому, очевидно, он не может найти реализации этих функций.(В C и C ++ связывание с реализациями функций является отдельным этапом от использования объявлений этих функций, что обеспечивают файлы заголовков.)
За исключением того, что вы на самом деле неправильно называете gcc.Вам нужно выполнить два шага, сначала с -c
по скомпилировать исходный код в объектный файл:
gcc -c -o top.o -std=c99 top.c
Затем вот так, чтобы связать результат и сделать исполняемый файл:
gcc -o top.exe -std=c99 top.o -ltcl
В первом случае вам может понадобиться дополнительно указать соответствующий параметр -I
, чтобы найти включаемые файлы (если они не находятся в стандартных расположениях).Во втором случае вам может потребоваться указать соответствующий параметр -L
для поиска файлов библиотеки (libtcl.so
).В зависимости от системы может также потребоваться указать некоторые номера версий (например, -ltcl86
или -ltcl8.6
вместо -ltcl
).Все эти параметры зависят от конфигурации вашей системы сборки, поэтому их сложно предсказать точно.