编译C代码的字符串
真的离开墙问题,但有没有办法在GCC中编译一串C代码而没有任何媒介来保存该字符串(例如,源文件)?
有点像:
$ gcc "#include int main( void ){ printf('hello world'); return 0;}" -o test
感觉真的很脏,但如果有一些简单的方法来做这种事情,那将是非常好的。
如果使用-
作为命令行中的输入文件,gcc将从标准输入读取。 由于没有文件扩展名,gcc可以用来查找应编译的语言,因此必须使用-x
标志指定:
$ gcc -xc -o tst - < #include > int main(void) { > printf("Hello world\n"); > } > EOF $ ./tst Hello world
我承认有时会突出显示代码并使用:
(cat preamble.hpp; xsel) | g++ -x c++ - && ./a.out
对于C,“-xc”也是如此。