在Python中编译C ++程序时,尝试使用语法捕获操作系统错误

时间:2018-03-24 22:32:12

标签: python c++ compiler-errors operating-system

我正在尝试创建一个python函数,它将根据用户输入执行C ++脚本。该函数替换C ++文件中的某些行,然后在python上执行它。每当C ++文件中替换的行语法错误时,就会出现无效语法错误。在这种情况下,我希望函数返回-1,而不是仅代表用户崩溃或混淆错误的语法/输入。

我试过了:

  • 在python函数中运行try catch语句

  • 在C ++代码中运行try catch语句

  • 运行带有try catch的bash脚本以进行编译错误

尽管如此,这些选项都没有奏效。任何人?

C++ segment as a string Python function implementation

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用subprocess.check_output而不仅仅是检查呼叫?

https://docs.python.org/2/library/subprocess.html#subprocess.check_output 如果clang ++无法正确执行,这似乎会引发异常,这意味着构建错误。

抱歉,NOOb也无法发表评论。

答案 1 :(得分:0)

您需要在无效代码编译时检查clang ++的返回值。如果无法通过返回值判断,则可能必须解析clang ++的输出。

要在终端中检查返回值(假设是bash): clang ++ valid_file.cpp

echo $?

clang ++ invalid_file.cpp

echo $?