1

我对 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:\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
4

3 回答 3

2

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

gcc -fmessage-length=0 -Os -pthread -Wno-deprecated -fno-gnu-keywords --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 。

并且请不要玛雅不寻找 exe,玛雅在 Windows 中寻找 mll 等在 linux 中。因此,如果您真的是 Maya api 新手,您应该尝试使用 Visual Studio,而 Maya Devkit 有一个 Visual Studio 插件向导,可以帮助您配置插件及其依赖项。

于 2012-07-16T18:16:00.860 回答
1

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

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

解决方案可能就像添加一样简单

#define _BOOL

在包含头文件之前。

请注意,如果头文件错误地检查其他内容,您可能会遇到其他错误。

于 2012-07-16T05:26:14.647 回答
0

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

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

于 2012-07-16T22:57:47.830 回答