使用GNU C++为Maya编译时出现编译器错误

Getting compiler errors when compiling for Maya using GNU C++

本文关键字:编译器 错误 编译 GNU C++ Maya 使用      更新时间:2023-10-16

我对C++编程很熟悉,对使用Maya C++API编程也很熟悉。我一直在尝试使用GNU C++编译器,因为我有64位版本的Maya,但我只能自由使用32位版本的Visual C++。这一切都在64位Windows Vista中运行。

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

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

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

在windows中,您应该考虑使用visualstudio来编译maya插件,在linux g++中,正常的过程是这样的,我不确定在windows中如何。

gcc-fmessage length=0-Os-phread-Wno弃用-fno gnu keywords-fast math-fPIC-DLINUX-D_USER_=USER-D_HOST_=HOST-D_PROJECTNAME_=PROJECT-D_BUILDVERSION_=VERSION-DNDEBUG-DRQUIRE_IOSTREAM-D_BOOL-I$MAYA_LOCATION/include-I/home/USER/customIncludes-O3-shared-o/tm/helloWorldCmd.so helloWorldCmd.cpp

请注意D_BOOL。

请不要maya不找exe,maya在windows中找mll,等等在linux中。因此,如果你真的是maya-api的新手,你应该尝试使用visualstudio,maya-devkit有一个visualstudio插件向导,它将帮助你配置插件及其依赖项。

问题似乎是Maya没有正确检查C++关键字truefalsebool类型。

在谷歌上搜索后,我找到了头文件的副本,如果你自己查看文件,你会发现它会检查宏_BOOL,以确定它是否应该创建自己的bool类型。

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

#define _BOOL

在包括头文件之前。

请注意,如果头文件错误地检查其他内容,则可能会出现其他错误。

使用完整版本的Visual Studio的问题是,对于学习者来说,购买它的成本有点高,而且本机安装的Visual C++Express只能编译到32位目标。然而,我看到了这篇博客文章,它解释了如何让软件开发工具包与Visual C++Express一起使用,Visual C++Express可以编译到64位。它还解释了如何进行所有进一步的设置,为构建Maya插件做好准备:

http://prilisa.com/2012/01/my-first-maya-2011-c-plug-in.html