当 SWIG 包含命名空间时,我如何在 SWIG 中 %include C++ headers?

How can I %include C++ headers in SWIG when they contain namespaces?

我有一个包含 C++ 的 SWIG 文件 header。

Swig 文件:

%module my_module

%{
#include "my_c_file.h"
%}

%include "my_c_file.h"

C++ header:

namespace my_namespace {
  void Foo();
}

生成的 _wrap.cc 文件无法编译并包含奇怪的 c++,例如:

namespace arg1 ;
namespace *argp1 ;

argp1 = (namespace *)jarg1; 

我怀疑我缺少一些 Swig 命令行选项来让它正确处理 C++ 命名空间。我需要做什么?

听起来你没有告诉 swig 源文件是 C++ 文件。使用 swig -python -c++ 已经为我们工作了很长时间。

适当地更改您的命令行,应该可以正常工作。