C程序设计-编写可自我编译的文本文件



我正试图将文件写入磁盘,然后自动重新编译。不幸的是,sth似乎不工作,我得到一个错误信息,我还不明白(我是一个C初学者:-)。如果我手动编译生成的hello.c,它就可以正常工作了。

#include <stdio.h>
#include <string.h>
    int main()
    {
        FILE *myFile;
        myFile = fopen("hello.c", "w");
        char * text = 
        "#include <stdio.h>n"
        "int main()n{n"
        "printf("Hello World!\n");n"
        "return 0;n}";
        system("cc hello.c -o hello");
        fwrite(text, 1, strlen(text), myFile);  
        fclose(myFile);
        return 0;
    }

这是我得到的错误:

/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1。0:在功能_start': (.text+0x20): undefined reference to main'

这是因为您在编写程序源代码之前调用system来编译文件。因为,在这一点上,你的hello.c是一个空文件,链接器抱怨,正确的,它不包含main函数。

尝试改变:

system("cc hello.c -o hello");
fwrite(text, 1, strlen(text), myFile);  
fclose(myFile);

:

fwrite(text, 1, strlen(text), myFile);  
fclose(myFile);
system("cc hello.c -o hello");

您试图在编写文件之前编译文件?

在调用系统编译文件之前,不应该先写文件并关闭文件吗?我相信这是你的问题。

相关内容

  • 没有找到相关文章

最新更新