我正在使用一个名为 Mitsuba 的软件。它带有一个 Python 实现,用 Boost 包装。Python中的这一行:
scene = SceneHandler.loadScene(fileResolver.resolve("model.xml"), paramMap)
产生错误。根据文档,fileResolver.resolve 的类型是 fs::path,paramMap 的类型是 ParameterMap。
C++ 代码中的函数签名是:
SceneHandler::loadScene(const fs::path &filename, const ParameterMap ¶ms)
错误是:
Traceback (most recent call last):
File "...\foo.py", line 22, in <module>
scene = SceneHandler.loadScene(fileResolver.resolve("model.xml"), paramMap)
ArgumentError: Python argument types in
SceneHandler.loadScene(str, StringMap)
did not match C++ signature:
loadScene(class boost::filesystem2::basic_path<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::filesystem2::path_traits>, class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct mitsuba::SimpleStringOrdering,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > >)
我可以做哪些进一步的调查?你知道问题出在哪里吗?