为什么我收到 Warning(453) Cant apply (char *STRING, int LENGTH) no typemaps are defined
Why I'm getting Warning(453) Cant apply (char *STRING, int LENGTH) no typemaps are defined
我正在尝试从 java 代码调用 c 函数。
我在 ubunto 下使用 swig(版本 1.3.40)和 运行。
我的界面文件看起来:
%module test
%include "typemaps.i"
%apply(char *STRING, int LENGTH) {(char* pchInput, int inputSize)};
%{
#include "example.h"
%}
void testFunc(char* pchInput, int inputSize);
我得到以下 wanning/error:
警告(453):无法应用(char *STRING,int LENGTH)。没有定义类型映射。
以下链接对我没有帮助:
SWIG: Warning 453: Can't apply
SWIG: No typemaps are defined
Swig typemap java object
您需要在使用 %include 包含 header 之前应用您的类型映射,并且您应该从常规的 #include
开始
%module test
%{
#include "example.h"
%}
%include "typemaps.i"
%apply(char *STRING, int LENGTH) {(char* pchInput, int inputSize)};
%include "example.h"
其中 example.h 包含您的函数声明。试试这个
奇怪。
我用当前的 swig 3.0.7 尝试了你上面的例子(称之为 test.i 并使用 swig -java test.i
)并且它工作正常。此外,您不需要 %include "typemaps.i"
也能正常工作。但是据我所知这也应该适用于(古老的)swig 1.3.40.
我正在尝试从 java 代码调用 c 函数。 我在 ubunto 下使用 swig(版本 1.3.40)和 运行。
我的界面文件看起来:
%module test
%include "typemaps.i"
%apply(char *STRING, int LENGTH) {(char* pchInput, int inputSize)};
%{
#include "example.h"
%}
void testFunc(char* pchInput, int inputSize);
我得到以下 wanning/error: 警告(453):无法应用(char *STRING,int LENGTH)。没有定义类型映射。
以下链接对我没有帮助:
SWIG: Warning 453: Can't apply
SWIG: No typemaps are defined
Swig typemap java object
您需要在使用 %include 包含 header 之前应用您的类型映射,并且您应该从常规的 #include
开始%module test
%{
#include "example.h"
%}
%include "typemaps.i"
%apply(char *STRING, int LENGTH) {(char* pchInput, int inputSize)};
%include "example.h"
其中 example.h 包含您的函数声明。试试这个
奇怪。
我用当前的 swig 3.0.7 尝试了你上面的例子(称之为 test.i 并使用 swig -java test.i
)并且它工作正常。此外,您不需要 %include "typemaps.i"
也能正常工作。但是据我所知这也应该适用于(古老的)swig 1.3.40.