如何刷我的整个c++;Java的代码库
我使用swig为独立类生成java绑定。然而,当我试图为我现有的代码库做这件事时,代码库非常复杂,需要调用STL、OSG和OpenGL。当我尝试游泳的时候,我会遇到问题。 这是我的档案如何刷我的整个c++;Java的代码库,java,swig,Java,Swig,我使用swig为独立类生成java绑定。然而,当我试图为我现有的代码库做这件事时,代码库非常复杂,需要调用STL、OSG和OpenGL。当我尝试游泳的时候,我会遇到问题。 这是我的档案 /* File : Line.i */ %module Line %{ #include "Elements/LineFeatureObject.h" %} /* Let's just grab the original header file here */ %include "Elements/LineF
/* File : Line.i */
%module Line
%{
#include "Elements/LineFeatureObject.h"
%}
/* Let's just grab the original header file here */
%include "Elements/LineFeatureObject.h
此标题包括其他几个标题文件。其中一些由代码读取,而对于某些代码,它会给出以下警告。
警告401:关于基类“ELEMENTS::ILineAlgebra”一无所知。忽略。
这些类与其他类列在同一位置。所以我不确定这两门课到底出了什么问题
继续,我能够获得_wrap.cxx,但在编译它时会出现以下错误。
错误C4430:缺少类型说明符-假定为int。注意:C++不支持默认int
错误C2144:语法错误:“void”前面应加“;”
错误C2086:“int wingdipi”:重新定义
C:\ProgramFiles(x86)\Microsoft SDK\Windows\v7.0A\include\GL/GL.h(1152):请参见“Wingdipi”的声明
.
.
我还没有在这里列出所有的。
您能帮我找到解决这些错误的方法吗。默认情况下,SWIG只处理名为
%include
的顶级文件。它不会递归到其他#include
文件中。您必须明确地%包括希望SWIG处理的头文件
SWIG对STL也一无所知,但是有一些SWIG头可以添加对STL类型的支持,比如std::string
和std::vector
。STL模板必须显式实例化并指定目标语言名称:示例:
%include <std_string.i>
%include <std_vector.i>
%template(IntVector) std::vector<int>;
默认情况下,SWIG仅处理名为%include
的顶级文件。它不会递归到其他#include
文件中。您必须明确地%包括希望SWIG处理的头文件
SWIG对STL也一无所知,但是有一些SWIG头可以添加对STL类型的支持,比如std::string
和std::vector
。STL模板必须显式实例化并指定目标语言名称:示例:
%include <std_string.i>
%include <std_vector.i>
%template(IntVector) std::vector<int>;