编译C代码的字符串

时间:2010-01-18 04:21:34

标签: c gcc compilation

这里真的没有问题,但是有没有办法在GCC中编译一串C代码而没有任何媒介来保存该字符串(例如源文件)?

有些事情:

$ gcc "#include <stdio.h> int main( void ){ printf('hello world'); return 0;}" -o test

感觉真的很脏,但如果有一些简单的方法可以做这种事情,那将会非常好。

2 个答案:

答案 0 :(得分:8)

如果在命令行中使用-作为输入文件,gcc将从标准输入读取。由于没有文件扩展名,gcc可以用来查找应编译的语言,因此必须使用-x标志指定:

$ gcc -x c -o tst - <<EOF
> #include <stdio.h>
> int main(void) {
>   printf("Hello world\n");
> }
> EOF
$ ./tst
Hello world

答案 1 :(得分:6)

我承认有时会突出显示代码并使用:

(cat preamble.hpp; xsel) | g++ -x c++ - && ./a.out

与C的“-x c”相同。