2

在我的 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。

4

1 回答 1

1

TCC 带有一个基本的运行时库 libtcc1。它包括您提到的基本功能。因此,在大多数情况下,您可以将所有调用替换为单个 tcc_add_library(tcc_ctx, "libtcc1.a")。

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

于 2012-09-27T16:13:41.163 回答