编辑:已解决,谢谢大家!
简单来说,我希望能够做到的是从一种编程语言获取用户输入,将其转换为另一种编程语言并自动编译。
例如(简化但不完全是我想做的,但遵循类似的思路):
1) 写一个python脚本,userData = raw_input("blah blah blah, example, example")
2) 如果 userData == "blah blah blah, example, example",序列化到一个名为 "example.cpp"的文本文件,并放入一些基于用户输入的预定数据(尽管以 C++ 形式编写)在 python 脚本中表示为字符串)。为简化起见,此预定数据将称为预定数据。
3) 预定数据的范围本质上是一个 cout << "this is a different message to before"<< endl;
4) 编译器(g++/gcc)自动编译,整个程序结构调用新创建的可执行文件。
如果有人可以帮助我指出我应该阅读的主题,以便能够实现这一点 - 如果可能的话 - 那就太棒了。
编辑:我认为我犯了一个典型的错误。为了不被指责要求其他人为我做“家庭作业”,我过于含糊,因此误导了我。感谢您到目前为止的答复,但也许现在我应该更具体一些。它既不是特定于 python 也不是特定于 c++,但我将在下面进行解释。我很抱歉之前没有更明确。
我真正想要实现的很简单。我想使用来自一种编程语言(python、c++、java)的用户输入,并让它创建一个 Lilypond 脚本,该脚本将自动编译并创建一个 midi 文件。
例如:
1) 要求用户按字母顺序输入一系列注释:例如“C”然后是“E”然后是“F”,依此类推。
2) 这些“注释”由控制循环语句检查,并在 Lilypond 脚本中创建一个字符串并序列化为与其编译器兼容的文件 (example.ly)
3) 该文件由Lilypond编译器自动编译生成一个midi文件(example.midi)
4) 由于这个创建过程,在程序的后面可以调用和播放这个example.midi。它不会在此创建之前存在。
最佳答案
对我来说,这听起来像是您只想编写一个用于交互式创建 lilypond
文件的用户界面。
我不明白这一切与编译有什么关系。您的 python 脚本需要以 lilypond 表示法编写一个文件,然后您的脚本需要对该文件调用 lilypond
(例如使用 os.system
)。您甚至可以跳过写入文件,只需将输出通过管道传输到 stdin
,lilypond
也可以读取。
关于c++ - 语言间自动编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918183/