Houdini Development Kit ( HDK ) VC小记

为了能更好的在VC里面引入CUDA做Houdini API的开发,能便高效率的使用VisualStudio的集成开发环境工具是必须的。默认的Houdini插件与节点的开发都是写完了*.C代码之后,使用命令行下的Hcustom命令完成自定义插件和节点的编译,但这样的流程并不方便,而且对于较大的工程管理也有难度。同时我也不熟悉Makefile文件的书写,要是调用很多诸如OpenGL,MPI,BOOST的这样的API或库工具包做开发,Hcustom使用起来就更不方便了,如果可以直接在VC的窗口里面进行debug,那很多开发工作会方便很多。

 

 

PS:其中我居然才发现Linux系统上文件的文件名称是区分大小写的,*.c是c文件,*.C就是C++文件,使用gcc编译HoudiniCustomNode源文件的时候,识别到*.C的时候就认定为C++编译了。而Windows上不分文件字母大小写,所以VC编译过程中就吧*.C当成C代码去编译了。。

 

我在Cmd里面追踪了一下 Hcustom和Hcompiler的附加命令,Hcustom在Houdini安装目录的bin文件夹下,主要完成2个任务,1个是添加用于HoudiniCustomNode编译的,编译器命令行指令,比如-D是定义宏,-I定义引入库的搜索路径,第二个任务是将指令传递给Hcompiler,Hcompiler调用VC的编译工具,完成最终DLL文件的编译和连接。顺便我也查阅了官方makefile文件。

 

 


--------------------------------------------------------------------------------

 

Options:

  -d                   Display CFLAGS environment variable passed to hcompile

  -g                   Create debug version of the DSO

  -i dir               Specify an install directory (default HOME\houdini9.5\dso)

  -s                   Create a stand alone application instead of a DSO

  -l libname       Link with the library named libname;  libraries are passed to the compiler in the order in which they are given

 

  -L libdir         Add libdir to the library file search path

  -I incdir         Add incdir to the include file search path

 

  -t                  Turn off creation of tagging information.  At least one object file in an archive must have the tagging  information for Houdini to load the .dll successfully

 

 

--------------------------------------------------------------------------------

 


 

以上这个是Hcustom的编译说明~~~

 

 

然后,下面这些是cmd上追踪出来的Hcustom 命令:

 

Making DEBUG version

Making STANDALONE version

Linking with 'libname'

Making 'SOP_SParticle.o' from 'SOP_SParticle.C'

 

CFLAGS = -TP -Zc:forScope

 

-DVERSION="9.5.375"

-DI386

-DWIN32

-DSWAP_BITFIELDS

-DDLLEXPORT=__declspec(dllexport)

-DUT_ASSERT_LEVEL=2

 

-I "incdir" 

-I "D:/Program Files (x86)/Microsoft Visual Studio 8/VC/include"

-I "D:/Program Files (x86)/Microsoft Visual Studio 8/VC/PlatformSDK/include"

-I "D:/PROGRA~2/SIDEEF~1/HOUDIN~1.375/toolkit/include/htools"

-I "D:/PROGRA~2/SIDEEF~1/HOUDIN~1.375/toolkit/include"

 

-Od

-Z7

 

-MD

-EHsc

-GR

-DSESI_LITTLE_ENDIAN

-Fo"SOP_SParticle.o"

 

 

      -link /libpath:"D:/Program Files (x86)/Microsoft Visual Studio 8/VC/lib/amd64"

      libpath:"D:/Program Files (x86)/Microsoft Visual Studio 8/VC/PlatformSDK/lib/amd64"

 

      libpath:"libdir""libname"

     "D:/PROGRA~2/SIDEEF~1/HOUDIN~1.375/custom/houdini/dsolib/*.a"          

     "D:/PROGRA~2/SIDEEF~1/HOUDIN~1.375/custom/houdini/dsolib/*.lib"

 

   -out:"dir/SOP_SParticle.exe"

 

 

  不少东西的写法和Makefile文件写法不太一样,是Hcompiler的格式,有很多编译时候的信息被具体化了,如编译这个SOP_SParticle节点时候具体调用到的静态库。

 

   Hcustom和Hcompiler的东西其实也不过是个批处理了,dll文件的编译和连接原理和步骤都是一样的。

 

    在VC里面重新按照上面追踪出来的内容完成项目工程的设置,就可以实现在VC的窗口中完成Houdini的自定义节点和DLL文件的编译与连接了。或者cl命令行下写这个MakeFile文件

 

 


--------------------------------------------------------------------------------

 

 

  下面这个是Houdini用于VC的MakeFiles文件:

  

   CC = $(MSVCDir)/bin/cl -TP -MD -GX -GR -Zc:forScope -c

   LINK = $(MSVCDir)/bin/link

 

   HDEFINES =

   -DVERSION ="9.5.375"

   -DI386

   -DWIN32

   -DSWAP_BITFIELDS

   -DDLLEXPORT="__declspec(dllexport)"

   -DSESI_LITTLE_ENDIAN

 

   HLIBINC = -LIBPATH:$(HFS)/dsolib

   HLIBS = $(HFS)/custom/houdini/dsolib/*.a

   SYSLIBINC = -LIBPATH:$(MSVCDir)/lib

   -LIBPATH:$(MSVCDir)/PlatformSDK/lib

   SYSLIBS = INCINC = $(INCDIRS)

   -I$(HFS)/toolkit/include -I$(HFS)/toolkit/include/htools

   -I$(MSVCDir)/include -I$(MSVCDir)/PlatformSDK/include

 

   SHAREDFLAG = -DLL

   BJOUTPUT = -Fo

   DSOOUTPUT = -out:

   SAOUTPUT = -out:

 

   BJFLAGS = $(HDEFINES) $(INCINC) $(WFLAGS) $(OPTIMIZER)

   DSOFLAGS = $(SYSLIBINC) $(LIBDIRS) $(LIBS) $(SYSLIBS) $(HLIBINC) $(HLIBS)

   SAFLAGS = $(DSOFLAGS)

 

用这段Makefile文件,在Visual Studio 的cl命令行窗口下就可以做Houdini的Custom和DSO的编译工作了。编译完成DLL之后,将编译好的DLL文件复制到Houdini的DSO搜索目录下,启动Houdini就可以使用节点了。

 

也可以在Hbatch或者textport下用DSOVersion命令查找。Makefile里面文件命令定义比较琐碎。但好在MSDN上都写了,我现在正在查阅所有命令的帮助,回头还有部分VC窗口中的连接问题,解决后再在VC的窗口中编译Houdini的DSO就基本上非常完好了。

 

文章来源:http://blog.csdn.net/DingXun/archive/2009/03/03/3948240.aspx

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22785983/viewspace-619772/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22785983/viewspace-619772/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值