使用GNU C+;为Maya编译时出现编译器错误+; 我对C++编程相当陌生,并且使用玛雅C++ API编程非常新。我一直尝试使用GNU C++编译器,因为我有玛雅的64位版本,但是我只有免费使用32位版本的VisualC++。这一切都在64位Windows Vista中运行

使用GNU C+;为Maya编译时出现编译器错误+; 我对C++编程相当陌生,并且使用玛雅C++ API编程非常新。我一直尝试使用GNU C++编译器,因为我有玛雅的64位版本,但是我只有免费使用32位版本的VisualC++。这一切都在64位Windows Vista中运行,c++,api,plugins,gnu,maya,C++,Api,Plugins,Gnu,Maya,问题是,当我尝试编译Maya附带的helloWorldCmd.cpp示例时,我收到错误消息,表示包含的Maya头文件存在问题。玛雅的编译器头是否存在问题,或者仅仅是GNU C++不能用于编译玛雅的插件?我需要帮助,因为这个问题可能会阻止我进一步学习如何为Maya编写插件 下面是生成的编译器错误。如果有人能解释出问题所在,我将不胜感激: C:\MyPrograms>c++ helloWorldCmd.cpp -o helloWorld.exe In file included from c:

问题是,当我尝试编译Maya附带的helloWorldCmd.cpp示例时,我收到错误消息,表示包含的Maya头文件存在问题。玛雅的编译器头是否存在问题,或者仅仅是GNU C++不能用于编译玛雅的插件?我需要帮助,因为这个问题可能会阻止我进一步学习如何为Maya编写插件

下面是生成的编译器错误。如果有人能解释出问题所在,我将不胜感激:

C:\MyPrograms>c++ helloWorldCmd.cpp -o helloWorld.exe
In file included from c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include/
maya/MString.h:47:0, from c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include/
maya/MSimple.h:48, from helloWorldCmd.cpp:30:
c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include/maya/MTypes.h:239:8: e
rror: expected identifier before 'false'
c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include/maya/MTypes.h:239:8: e
rror: expected '}' before 'false'
c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include/maya/MTypes.h:239:8: e
rror: expected unqualified-id before 'false'
c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include/maya/MTypes.h:239:18:
error: expected declaration before '}' token

问题似乎是玛雅没有正确检查C++关键字<代码>真< /COD>,<代码> false <代码>,以及<代码>布尔O//C>类型> < /P> 在Google上搜索后,我找到了头文件的副本,如果你亲自查看该文件,你会看到它检查宏
\u BOOL
,以知道它是否应该自己创建
BOOL
类型

解决方案可能很简单,只需添加

#define _BOOL
在包含头文件之前


注意,如果头文件错误地检查其他东西,您可能会得到其他错误。在Windows中,

< P> >您应该考虑使用VisualStudio编译Maya插件,在Linux G++中,正常程序是这样的,我不确定它是如何在Windows中使用的。 gcc-fmessage length=0-Os-pthread-Wno不推荐使用-fno-gnu关键字-快速数学-fPIC-DLINUX-D_-USER=USER-D_-HOST=HOST-D_-PROJECTNAME=PROJECT-D_-BUILDVERSION=VERSION-DNDEBUG-DREQUIRE\u-IOSTREAM-D\u BOOL-I$MAYA\u-LOCATION/include-I/home/USER/customIncludes-O3-shared-o/tm/helloWorldCmd.so helloworld.cpp

请注意D_BOOL


请不要maya不寻找exe,maya在windows中寻找mll,在linux中也是如此。因此,如果您真的使用MayaAPI,您应该尝试使用VisualStudio,maya devkit有VisualStudio插件向导,它将帮助您配置插件及其依赖性。

< P>使用VisualStudio的完整版本的问题是,对于学习者来说,购买它的成本有点令人望而却步,并且是VisualC++的本地安装。Express仅编译为32位目标。然而,我遇到了这个博客帖子,它解释了如何使用VisualC++的Express软件开发工具包,它编译到64位。它还解释了如何进行所有进一步的准备好构建Maya插件的设置:


有关设置vcstudio for maya的详细信息,请参阅此pdf