这里真的没有问题,但是有没有办法在GCC中编译一串C代码而没有任何媒介来保存该字符串(例如源文件)?
有些事情:
$ gcc "#include <stdio.h> int main( void ){ printf('hello world'); return 0;}" -o test
感觉真的很脏,但如果有一些简单的方法可以做这种事情,那将会非常好。
答案 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”相同。