终于把UNIX下的GTS移植到WINDOWS下面~难啊

最近一致在寻找一个很好的几何实体布尔操作的库,找到了小巧精致但特别功能要收费的的sgCore,强大的不知道怎么使用的openCASCADE,GNU开源UNIX系统的GNU Triangulated Surface Library(GTS),还听闻一些收费的HOOPS等。
最开始,sgCore非常让我满意,精巧的结构,很易于使用的编程风格,强大的功能,小巧的身材~~~可是,当需要用到将三角形模型转换成实体模型的时候,就要收费了。最低收费标准400美元,我的天啊,抢人~~~
最终还是放弃了这个美丽的“陷阱”。
openCASCADE库,借用论坛上坐沙发流行的一句话:很好,很强大!无与伦比的功能,包括CAD/CAM的方方面面,从二维样条曲线,到三维的实体操作,样样俱全,可是,太大了~~~600多M的安装包,加上200M的文档,源程序还是*.cxx的。强大到根本搞不清楚怎么入手,最终放弃了~~~~~~
最后的希望来自于GNU的GTS,小巧,免费,精致,强大。唯独一个缺点是目前只有UNIX版本的,虽然写了可以在WIN32下面编译,但是其MAKEFILE还是VC6时代的,还需要3个依赖包。而这两个做好的WIN32下的依赖包还是VC6编译的,即便在VC++2005下面吧GTS编译成功了,也用不起。因为这两个DLL用的是MSVCRT.DLL,而VC++2005编译的GTS库用的MSVCRT80.DLL,会导致不兼容。
查阅了大量的资料,发现解决方法有如下:
1、使用cygwin编译。缺点很显然,我写程序也得在cygwin下面去编译,显然有些不太方便。而且编译出来的DLL还不好用。
2、用VC++2005全部重新编译所有的依赖包。
3、放弃~~~~

最终选择了2。拼死活命也要将GTS编译出来。
第一个难题就是glib的编译问题。因为GTS需要用到glib,所以就到网上寻glib的win32版本。竟然,还是只有那个VC6的版本。还好,glib最新的源代码中已经包含了VC++2005的makefile了。还需要找gettext和libiconv的WIN32版本。
经过查询,找到gettext 0.14.4,据说可以编译成功。试了N久,发现少了relocate.h这个头文件,即使弄上去了编译也出问题。又是google,找到一个人的问题和我一样,解决方案是用0.14.6版本编译。果然通过了。幸福~~~
编译libiconv也遇到了一些莫名其妙的问题,都是一些什么玩意儿没有定义啊,什么宏没有定义这些,很烦人。glib也是一些win32下老的makefile需要更新。……
4天时间都在搞这些玩意儿,彻底记不清楚具体是怎么把他搞成功的了。最后做了一个安装包,只需执行一个批处理,傻瓜化的就完成了编译安装。~~~
PS:准备又要开始研究SMS相关的东西了~~哎,一天忙啊

下载:
用VC8编译好的库:
http://www.hesicong.net/Store/gts_win32_build_vc8.rar

包含所有源代码,在VS2005的命令提示里面直接执行build_all.bat即可编译安装成功,很费功夫的哦:
http://www.hesicong.net/Store/gts_win32_src.rar
Tags:

11 Comment so far

  1. jianghanxia on 2007-9-18 19:54:51

    很好,很强大


    回复该留言
  1. rabbit on 2007-12-21 19:38:02
  1. tmllpl on 2008-5-24 12:19:50

    你开发CAD吗?我们可以合作项目?

    administrator 于 2008-5-24 19:16:10 回复
    呵呵,非CAD项目,你是哪个学校或者哪个单位的的?


    回复该留言
  1. tmllpl on 2008-8-2 17:10:41

    GTS 中布尔运算你已经全会了吗?其中的源代码也看懂了吗?我准备申请一个项目,其中要用到CAD的布尔运算编程。我想请你帮忙,彻底搞清楚,当然我要付费。


    回复该留言
  1. zj2008 on 2008-8-11 22:30:23

    请问楼主,我用的你提供的VC8已经编译好的库,但是函数调用时还是编译不通过,
    我觉得应该是我的平台配置问题,你可不可以详细一点跟我说一下配置流程啊,因为以前还没惊醒过这方面的设置,并且网上也很难找到


    回复该留言
  1. administrator on 2008-8-12 10:56:44

    我提供的编译好的库只能编译和运行在RELEASE模式下面,请确认。
    配置流程我也忘了,当时怎么摸索出来的也不清楚。反正GTS这个库很麻烦。


    回复该留言
  1. zj2008 on 2008-8-13 12:22:18

    我现在在VC6中设置成功了,请问哪里有这个函数库中函数的使用方法啊?

    administrator 于 2008-8-13 14:36:25 回复
    貌似没有文档~只有看例子
    boss 于 2008-8-29 10:27:40 回复
    你好,能不能给大家介绍一下GTS在vc6.0下的详细配置啊


    回复该留言
  1. alpha111 on 2008-8-24 2:12:58

    调试test.cpp时出错: 没有找到gts-0.7.dll,因此这个应用程序未能启动.
    如何解决?

    administrator 于 2008-8-24 23:55:00 回复
    拷贝DLL到你的运行的目录即可。此DLL貌似不可用于调试。


    回复该留言
  1. boss on 2008-8-28 10:48:11

    请问楼主,能不能把GTS库在vc6.0下的配置说明一下呢,因为我的程序是在vc6.0下写的。

    administrator 于 2008-8-28 14:36:09 回复
    GTS好像自带了VC5的工程文件,可以参考一下。我基本上不会用VC6写程序,所以没办法提供相关配置说明


    回复该留言
  1. alpha111 on 2008-8-29 0:38:38

    test.exe执行时打开的窗口一闪而过,看不到执行结果.

    administrator 于 2008-8-29 9:59:34 回复
    不清楚你怎么弄得,呵呵。可能你要掌握一些更为多的调试技巧了。


    回复该留言
  1. mjh on 2008-9-5 9:17:57

    test.exe 产生的输出文件是一个文本文件,用什么软件能将它还原为图形.
    在GTS网站的 sample files里也有类似的模型文件,只不过它们扩展名不是.TXT而是.gts.gz,但也可按文本文件打开.文件格式与test.exe 产生的输出文件是一样的.
    请楼主指点:为什么三维模型用这种文本文件,而不是.ply等格式。用什么软件可看这种格式的模型并在该软件中可操作该模型。谢谢!


    回复该留言


Leave a reply