C编程-编写可自行编译的文本文件

| 我正在尝试将文件写入磁盘,然后将其自动重新编译。不幸的是,某事似乎不起作用,并且我收到一条我不了解的错误消息(我是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.o:在函数``1ѭmain\''中 collect2:ld返回1退出状态     
已邀请:
这是因为在将程序源代码写入文件之前,您正在调用
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\");
    
您要在编写文件之前尝试编译文件吗?     
在调用系统来编译文件之前,您不应该先编写文件并先关闭文件吗?我相信这是您的问题。     

要回复问题请先登录注册