[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] Use of TCC under a new OS

From: xuanding
Subject: [Tinycc-devel] Use of TCC under a new OS
Date: Sun, 12 Mar 2017 21:40:52 -0500

Hi everyone,

I am a undergradaute student, and this semester I have a project to port TCC to a new OS written by our prof.

Basically I want to implement the function that we type in a string in the OS, and we can compile the string into memory, and get the result. Same as the illustration for the libtcc.

But I encounter a problem that after I compile my string, I can not get the main function from symbol table. I am unable to find out why and what happened. I am thinking it might because I didn’t fill the address for main in when I invoke tcc_compile_string. But I don’t know how can I check.

Any help will be so great.



#include "tcc.h"
main_func handle_tcc_script(char *tcc_program) {


nk_vc_printf("\nBegin handle_tcc_script 0..");
TCCState *s;
int (*func)();

s = tcc_new();
if (!s) {
nk_vc_printf("\nCould not create tcc state\n");
return NULL;

tcc_set_output_type(s, TCC_OUTPUT_MEMORY);


if (tcc_compile_string(s,tcc_program) == -1) {
nk_vc_printf("\nCould not compile program\n");
return NULL;

if (tcc_relocate(s, TCC_RELOCATE_AUTO) < 0) {
nk_vc_printf("\nCould not relocate program\n");
return NULL;

func = tcc_get_symbol(s, "main");
if (!func) {
nk_vc_printf("\nCould not find main()\n");
return NULL;
nk_vc_printf("..100.. Done handle_tcc_script\n");

return func;

reply via email to

[Prev in Thread] Current Thread [Next in Thread]