1

私はC++プログラミングにかなり慣れておらず、Maya C++APIを使用したプログラミングには非常に慣れていません。私は64ビットバージョンのMayaを使用しているため、GNU C ++コンパイラを使用しようとしていますが、自由に使用できるのは32ビットバージョンのVisualC++のみです。これはすべて64ビットのWindowsVistaで実行されています。

問題は、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プラグインをコンパイルすることを検討する必要があります。Linuxg++では、通常の手順は次のようになり、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には、プラグインとその依存関係の構成に役立つVisualStudioプラグインウィザードがあります。

于 2012-07-16T18:16:00.860 に答える
1

true問題は、MayaがC ++キーワード、、falseおよびboolタイプを適切にチェックしないことであるようです。

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 に答える