<%%>在c ++中做什么?

时间:2019-12-07 15:50:30

标签: c++ pybind11

我正在使用cppimport,这是一个有助于将cpp导入python的库。如此处所述:https://github.com/tbenthompson/cppimport,有必要将setup_pybind11放入cpp文件的/* */中。

/*
<%
setup_pybind11(cfg)
%>
*/

看来,按照文档中的说明将其放入/* */中时,从python导入cpp文件时它没有任何作用。但是,当我不使用/* */时,在python上一切正常,但是后来我无法在Visual Studio中运行它。有什么建议我可以做什么?为什么必须从Python中删除/* */才能正常工作?

1 个答案:

答案 0 :(得分:5)

它由/**/包裹,因此从C ++角度来看,它是comment

我想您的build automation正在同一C ++文件上运行其他程序。

  

但是我无法再从Visual Studio中运行它。

也许可以考虑使用和配置一些更好的构建自动化。我想到了ninjaomake或旧的GNU make之类的工具。当然,您可以将它们配置为运行cppimport魔术(请完整阅读其README)。

大多数C ++编译器都是由命令行驱动的。查看GCCClang。两者都存在于Windows上(因为我使用Linux,所以我从未使用过)。

  

从python导入cpp文件时无效。

但是您不 "import"。根据{{​​3}}您import cppimport,而不是您的C ++文件:

  

打开python解释器并运行以下行:

>>> import cppimport
>>> somecode = cppimport.imp("somecode") #This will pause for a moment to compile the module
>>> somecode.square(9)

PS。我不是英语母语人士,而且我从未使用过Python(我更喜欢READMEGuile与Python相似的语言,而我认为semantics更好,更简洁,有关更多信息,请参见syntaxR5RS。但是,当文件名为README时,我将完整阅读它。