Is it possible to compile c code using python?

2019-03-21 17:37发布

问题:

I want to build a python program that get as input a path to .c file and then it compile its.

The program will output OK to the screen if the compilation is sucessful, and BAD otherwise.

I'm been trying to google it, but could not find anything. I've been also trying to run cmd within python with an argument of the compiling program but it didn't work.

To clarify - I've already got a very specific compiler in my machine which I want to run. I dont want python to act as a compiler. Just get a code, run my compiler over it, and see what's the answer.

  • It should work on Linux server with python 2.4.

Thanks

回答1:

Sure, why not? Of course, you'd need GCC installed (or llvm) so you have something to compile with. You can just use os.system, or any of the other ways for calling an external program.

Of course, you're probably better off looking at something like SCons, which already exists to solve this problem.

Plus, to answer the question actually asked, there's nothing that would prevent you from writing a compiler/assembler/linker in python, they're just programs like anything else. Performance probably wouldn't be very good though.



回答2:

Step 1. Get PLY. Python Lex and Yacc. http://www.dabeaz.com/ply/

Step 2. Find a Yacc/Lex configuration for C. http://www.lysator.liu.se/c/ANSI-C-grammar-y.html

Step 3. Tweak PLY to use the C language rules you found.

Step 4. Run. You're "compiling" C code -- checking the syntax.



回答3:

If I understood you clearly, you just want to run compiler with some arguments from python?

In this case, you can just to use os.system. http://docs.python.org/library/os.html#os.system

Or better way is module "subprocess". http://docs.python.org/library/subprocess.html#module-subprocess