四月 2008 Archives
2008-04-13 11:23:04
使用Eclipse開發Maya plugin時關於除錯的一些設定
在試著找過文件並且請教朋友之後,終於找到應該設定Degugger的參數的種類。首先,由於我們要進行除錯的Maya plugin是個shared library,這其實表示我們要除錯的應用程式是Maya本身。在使用Eclipse的CDT時,新增一個給Maya的Debug設定,並且是使用C/C++ Local Application的預設設定來修改。以下條列應該修改的設定和環境參數,其餘設定可用預設值。
Debug/yourplugin.so改為maya.bin的位置。例如:
/usr/autodesk/maya8.5-x64/bin/maya.bin
LD_LIBRARY_PATH /usr/autodesk/maya8.5-x64/lib MAYA_DEBUG_NO_SIGNAL_HANDLERS 1 MAYA_LOCATION /usr/autodesk/maya8.5-x64
以上是必要的基本設定,其他部份的設定可參考自己需求修改。
參考資料
Using a debugger to debug your plug-ins
2008-04-09 01:14:21
使用Eclipse開發Maya plugin的一些設定
在Linux的環境下,藉由Eclipe也可以直接設定程式專案來開發Maya plug-in。對程式專案所需要的修改的設定和進行OpenGL專案的部份也很類似,但是稍微複雜些。這是因為在Compiler和Linker的部份參數較多。以下條列我目前發現需要修改的部份。需要注意的是,這只是針對單一plugin的撰寫,並不是建立一個build system。
首先當然要新增一個C++程式專案,並選擇專案型態為Shared
Library。在這個新專案中,修改其Project Properties中關於C/C++ Build的Settings部份。主要要增加的有:
C/C++ Build -> Settings -> GCC C++ Compiler -> Preprocessor:
在Defined symbols(-D)內加入_BOOL,LINUX, REQUIRE_IOSTREAM
C/C++ Build -> Settings -> GCC C++ Compiler -> Directories:
在Include paths (-I) 內加入Maya include
path(如:/usr/autodesk/maya8.5-x64/include)
C/C++ Build -> Settings -> GCC C++ Compiler -> Optimization:
在Other optimization flags欄位可加入"-pthread"或其他旗標
C/C++ Build -> Settings -> GCC C++ Compiler -> Miscellaneous:
在Other flags欄位,要加入"-fPIC"及"-fno-gnu-keywords"
以上這些是針對Compiler部份。以下則是針對Linker的部份
C/C++ Build -> Settings -> GCC C++ Linker -> Libraries:
在Libraries(-l)這裡需要增加的項目其實是可多可少。全部都寫上也無不可。目前發現需要加入的有
OpenMaya OpenMayaRender OpenMayaAnim OpenMayaUI OpenMayaFX GL GLU glut在Library serach path(-L)的部份一樣需要加入Maya library path(如:/usr/autodesk/maya8.5-x64/lib)
C/C++ Build -> Settings -> GCC C++ Linker -> Miscellaneous: 加入"-D_BOOL -DLINUX -DREQUIRE_IOSTREAM"
值得注意的是Debug的部份目前還沒找到好的作法。在Maya官方文件當中所提及的只有利用
maya -d ddd的方式來使用ddd作為除錯的工具。
參考資料Writing a Plugin
2008-04-07 15:22:19
使用Eclipse進行OpenGL程式開發的基本設定
以下內容參考自Article:OpenGL programming in Eclipse
要在Linux下利用Eclipse寫OpenGL相關的程式,可安裝GLUT或是SDL相關的開發套件。如果選用GLUT,需要安裝freeglut3-devel的函式庫。依據參考的那個網頁,在Eclipse新增一個C++的程式專案後,必須在GCC C++ Linker裡面增加一個glut的值。所以最方便的方法就是利用預設的C++專案後,再修改必要的地方。