SWIG一般性问题
SWIG general questions
我正在学习SWIG,我试图理解一些c++可能出现的情况,这些情况在看完文档和示例后我无法弄清楚,以下是我的内容:
usecase1.h
#ifndef __USECASE1_H__
#define __USECASE1_H__
namespace foo_namespace {
int usecase1_f1( float b, float c, float *res );
}
#endif
usecase1.cpp
int usecase1_f1( float b, float c, float *res )
{
return 1;
}
usecase2.h
#ifndef __USECASE2_H__
#define __USECASE2_H__
extern double usecase2_v1;
int usecase2_f1(int n);
char *usecase2_f2();
#endif
usecase2.cpp
#include <time.h>
double usecase2_v1 = 3.0;
int usecase2_f1(int n) {
if (n <= 1) return 1;
else return n * usecase2_f1(n - 1);
}
char *usecase2_f2()
{
time_t ltime;
time(<ime);
return ctime(<ime);
}
usecase3.h
#ifndef __USECASE3_h__
#define __USECASE3_h__
#include <math.h>
namespace foo_namespace {
static inline float usecase3_f1( float x )
{
return 31.0f;
}
}
#endif
example1_working.i
%module example
%{
int usecase1_f1( float b, float c, float *res );
#include "usecase2.h"
%}
int usecase1_f1( float b, float c, float *res );
%include "usecase2.h"
example2_not_working.i
%module example
%{
#include "usecase1.h"
#include "usecase2.h"
%}
%include "usecase1.h"
%include "usecase2.h"
问题- 声明显式命名空间函数,如在
example1_working.i
将工作,但我想使用头代替,它似乎swig搞砸了名称空间,有任何解决方案吗? - 我如何包装命名空间的函数声明为静态内联在swig文件(usecase3.h)?
确保在运行swig时将-c++传递给swig,默认情况下不启用c++支持。有关c++包装的详细信息,请参阅此处- http://www.swig.org/Doc1.3/SWIGPlus.html
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- SWIG一般性问题