我正在构建一个类似于解释器的bash shell脚本,以从命令行轻松运行C ++文件。您可以在此处查看源代码:https://github.com/binarez/xcpp/blob/master/xcpp.sh。我的系统使用的源文件是.xcpp,只是为了区别于常规cpp文件。
一切正常,除了当我尝试从另一个xcpp文件中包含一个xcpp文件时:gcc预处理程序试图解释#!,这是我用来启动bash脚本的shebang行的开头当我运行xcpp文件时。
请注意,它可以在“主”文件上使用,因为在将其泵送到gcc之前,我使用sed跳过了shebang行,但在#include的文件上却无法使用,因为我没有运行的机会在预处理程序处理之前,先对包含的文件进行加密。
“主”脚本test.xcpp的示例:
#!./xcpp.sh
#include "module.xcpp"
int test( strings & args )
{
module( args );
return 0;
}
module.xcpp的示例:
#!./xcpp.sh
int module( strings & args )
{
for( string & arg : args )
{
println(arg);
}
return 0;
}
使用此系统,您只需chmod + x test.xcpp并使用./test.xcpp
运行我希望还可以将module.xcpp作为“主要”脚本运行,并在其他xcpp脚本中使用它。我正在使用gcc。我该如何运作?
我得到的错误:
module.xcpp:1:2: error: invalid preprocessing directive #!
#!xcpp.sh