无法理解流氓所产生的代码

时间:2012-04-27 08:58:11

标签: c++ python converter

例如我在python中有一个函数,我想转换为c ++(或从c ++调用,但我不想依赖python解释器) 简单的python函数

//test.py
def my_sum(x,y):
    print "Hello World!"
    return x*x+y

我跑了棚子并且有

//test.cpp
#include "builtin.hpp"
#include "test.hpp"

namespace __test__ {


str *__name__;



void __init() {
    __name__ = new str("__main__");

}

} // module namespace

int main(int, char **) {
    __shedskin__::__init();
    __shedskin__::__start(__test__::__init);
}

//test.hpp
#ifndef __TEST_HPP
#define __TEST_HPP

using namespace __shedskin__;
namespace __test__ {



extern str *__name__;



} // module namespace
#endif

丑陋的代码并没有我的函数my_sum和代码依赖于“builtin.hpp”。是否可以仅转换功能?

我想从我的c ++代码中调用函数 int sum = py.my_sum(3,5); 我怎么能这样做?

也许我可以用我在c ++代码中使用的python代码做DLL或者lib?

1 个答案:

答案 0 :(得分:1)

注意为这个程序提供的脱壳技术警告:

*WARNING* test.py:1: function my_sum not called!

在文档中还提到,为了使编译工作,应该直接或间接调用一个函数,否则不可能进行类型推理。如何确定my_sum的参数类型,如果甚至没有一个电话给它..? : - )

添加此项,例如:

if __name__ == '__main__':
  my_sum(1,1)

使my_sum出现在生成的C ++代码中,可以从另一个C ++程序中调用它。