Как автоматически связать символы с помощью TinyCC? - PullRequest
2 голосов
/ 14 февраля 2012

Использование TinyCC в моей C-программе позволяет мне использовать C в качестве своего рода языка сценариев, перезагружать C-файлы на лету и делать много довольно аккуратных вещей ... Но одна вещь меня действительно беспокоит. Связывание.

Я делаю мои обычные tcc_new и tcc_set_output_type с TCC_OUTPUT_MEMORY, но если я не включу их много:

    tcc_add_symbol(tcc_ctx, "printf", &printf);
    tcc_add_symbol(tcc_ctx, "powf", &powf);
    tcc_add_symbol(tcc_ctx, "sinf", &sinf);

все очень ограничено.

Мне нужен способ автоматического ввода всех символов в программе хоста. Я не хочу вручную ссылаться на каждую последнюю функцию в libc и libm. Какие существуют механизмы для облегчения автоматического связывания или добавления символов. Как я могу использовать libm в своем коде, не вставляя вручную каждый последний компонент.

В настоящее время я использую GCC, но на другой платформе использую Visual Studio для компиляции моей программы. Я мог бы полностью перейти на TCC.

1 Ответ

1 голос
/ 27 сентября 2012

TCC поставляется с элементарной библиотекой времени выполнения libtcc1.Он включает в себя основные функции, подобные тем, которые вы упоминаете.Поэтому в большинстве случаев вы можете заменить все ваши вызовы одной tcc_add_library (tcc_ctx, "libtcc1.a").

libtcc1 не завершена, поэтому вам, возможно, придется добавить некоторые функции вручную.

...