2
我试图运行痛饮对供应商的头,所以我并不需要重新实施在一个单独的头文件如何痛饮省略向前声明
swig -go -cgo -intgosize 64 -module qt -o $WORK/qt/_obj/qt_wrap.cxx -outdir $WORK/qt/_obj/ \
-I$HOME/Qt5.9.1/5.9.1/gcc_64/include -I$HOME/Qt5.9.1/5.9.1/gcc_64/include/QtOpenGL \
-I$HOME/Qt5.9.1/5.9.1/gcc_64/include/QtWidgets -I$HOME/Qt5.9.1/5.9.1/gcc_64 \
/include/QtGui -I$HOME/Qt5.9.1/5.9.1/gcc_64/include/QtCore -c++ qt.swigcxx
我收到以下错误时go build
在检查
qapplication.h:57
#include <QtWidgets/qtwidgetsglobal.h>
#include <QtCore/qcoreapplication.h>
#include <QtGui/qwindowdefs.h>
#include <QtCore/qpoint.h>
#include <QtCore/qsize.h>
#include <QtGui/qcursor.h>
#ifdef QT_INCLUDE_COMPAT
# include <QtWidgets/qdesktopwidget.h>
#endif
#include <QtGui/qguiapplication.h>
QT_BEGIN_NAMESPACE
class QDesktopWidget;
前向声明显然失败。
下面是qt.swigcxx:
// See swig.org for more inteface options,
// e.g. map std::string to Go string
%module qt
%{
#include <QPushButton>
#include <QApplication>
%}
%ignore "";
%include <qapplication.h>
%include <qpushbutton.h>
我怎样才能改变使痛饮省略了向前声明?
谢谢。我更喜欢第二个选项,现在卡住了typemap – user642318
你得到这个错误的原因是由于SWIG无法递归头文件。如果你对接口非常严格(避免仅包含头文件),并且按照需要的顺序包含头文件,SWIG可用于包装相当大的项目。我使用近40,000行生成的代码工作在一个项目上。 SWIG零件的构建方式比QT的东西快 –