在我的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。
TCC附带了一个基本的运行库libtcc1。它包括你提到的那些基本功能。因此,在大多数情况下,您可以用一个tcc_add_library(tcc_ctx,"libtcc1.a")替换所有调用
libtcc1并不完整,因此您可能需要手动添加一些函数。