如何使用TinyCC自动链接符号?

时间:2012-02-14 17:42:10

标签: linker symbols tcc

在我的C程序中使用TinyCC让我使用C作为一种脚本语言,即时重新加载C文件,并做了很多相当简洁的事情......但是,有一件事真的困扰我。联。

我使用TCC_OUTPUT_MEMORY执行正常的tcc_new和tcc_set_output_type,但如果我不包含大量这些内容:

    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 个答案:

答案 0 :(得分:1)

TCC附带了一个基本的运行时库libtcc1。它包括你提到的基本功能。因此,在大多数情况下,您可以使用单个tcc_add_library(tcc_ctx,“libtcc1.a”)替换所有通话。

libtcc1未完成,因此您可能需要手动添加一些功能。