【问题标题】:Compile string of C code编译C代码字符串
【发布时间】:2010-01-18 04:21:33
【问题描述】:

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

类似的东西:

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

感觉真的很脏,但如果有一些简单的方法来做那种事情,那就太好了。

【问题讨论】:

标签: c gcc compilation


【解决方案1】:

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

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

【讨论】:

  • 这看起来更容易使用。也谢谢!
  • 你如何编辑以前的多行?例如,我将如何键入`int main(void){}`,然后返回并在printf("etc");ni 前面添加一行?
  • @bluejayke 你不能
【解决方案2】:

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

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

C 的“-x c”也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 2012-08-09
    • 2013-08-11
    • 1970-01-01
    相关资源
    最近更新 更多