ars*_*nk2 10 c++ swig gcc-warning android-ndk
请解释SWIG的这些警告是什么以及如何避免它?
Warning 503: Can't wrap 'operator ()' unless renamed to a valid identifier.
Warning 503: Can't wrap 'operator =' unless renamed to a valid identifier.
Warning 503: Can't wrap 'operator *' unless renamed to a valid identifier.
Run Code Online (Sandbox Code Playgroud)
在Android NDK下编译SWIG生成的C++代码时会生成警告.
Fle*_*exo 13
Java没有与C++相同operator()或operator=相同的意义,因此SWIG无法直接包装它.因为它们可能很重要,所以你会看到一个警告,说明它们没有被包裹.(operator=有时候失踪可能特别糟糕).
此代码在运行时会出现以下警告swig -Wall -c++ -java:
%module Sample
struct test {
bool operator()();
};
Run Code Online (Sandbox Code Playgroud)
但是你可以使警告静音并告诉SWIG直接将操作员暴露为常规成员函数,例如:
%module Sample
%rename(something_else) operator();
struct test {
bool operator()();
};
Run Code Online (Sandbox Code Playgroud)
这导致在生成的包装器中something_else添加一个被称为添加的函数operator().
或者你可以断言SWIG忽略那些就可以了:
%ignore operator()
Run Code Online (Sandbox Code Playgroud)
(您也可以通过使用类名限定运算符来更广泛地应用这些指令中的任何一个).