我是C++编程的新手,也是使用C++编程的新手。我一直在尝试使用GNU编译器,因为我有64位版本的C++,但我只能免费使用32位版本的Visual C++。这些都是在64位Windows Vista中运行的。
问题是,当我尝试编译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发布于 2012-07-17 06:57:48
使用完整版Visual Studio的问题是,对于初学者来说,购买它的成本有点令人望而却步,并且Visual C++ Express的本机安装只能编译为32位目标。然而,我偶然看到了这篇博客文章,它解释了如何将软件开发工具包与Visual C++ Express一起使用,它确实可以编译为64位。它还解释了如何执行所有准备好构建Maya插件的进一步设置:
http://prilisa.com/2012/01/my-first-maya-2011-c-plug-in.html
发布于 2012-07-17 02:16:01
在windows中,你应该考虑使用visual studio来编译maya插件,在linux g++中,正常的过程是这样的,我不确定它在windows中是如何运行的。
gcc -f消息长度=0 -Os -pthread -Wno-弃用-fno-gnu-关键字--fast-math -fPIC -DLINUX -D_USER_=USER -D_HOST_=HOST -D_PROJECTNAME_=PROJECT -D_BUILDVERSION_=VERSION -DNDEBUG -DREQUIRE_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,等等。因此,如果你是maya api的新手,你应该尝试使用visual studio,maya devkit有一个visual studio插件向导,它将帮助你配置你的插件及其依赖项。
发布于 2012-07-16 13:26:15
问题似乎是Maya没有正确检查C++关键字true、false和bool类型。
在谷歌上搜索后,我找到了一个头文件的副本,如果你自己查看这个文件,你会看到它检查宏_BOOL,以了解它是否应该设置自己的bool类型。
解决方案可能简单到只需添加
#define _BOOL在包含头文件之前。
请注意,如果头文件错误地检查其他内容,您可能会得到其他错误。
https://stackoverflow.com/questions/11498090
复制相似问题