查看: 2940|回复: 11

有需要MinGW版本OSG2.8的,请到文件中转站中下载!

[复制链接]

该用户从未签到

发表于 2009-3-15 14:52:32 | 显示全部楼层 |阅读模式
今天上传了用TDM-MinGW(GCC 4.3.3)编译的OSG 2.8动态库,有需要的友友请到文件中转站中下载!
使用ctags制作了C++的tags文件,可以用于gvim中omnicppcomplete的代码自动完成。
编译了如下第三方库:Freetype 2.3.8、GDAL 1.6.0、jpeg6b、png 1.2.34、gif 4.1.4、tiff 3.8.2、zlib 1.2.3。
包含release和debug库,release版的范例,data和源文件。使用7zip极限压缩,60多兆解压后有4百多兆。
没有打包MinGW的相关动态库,如缺少这些文件,可以到http://www.tdragon.net/recentgcc/下载tdm-mingw-1.902.0-f1.exe。

[ 本帖最后由 x_wp 于 2009-3-15 17:52 编辑 ]

该用户从未签到

发表于 2009-3-15 14:55:46 | 显示全部楼层
非常支持和感谢~~

该用户从未签到

发表于 2009-3-15 21:47:51 | 显示全部楼层
赞~~~~~~~~~ :time: :time:

该用户从未签到

发表于 2009-3-18 01:42:05 | 显示全部楼层
支持!!!呵呵

该用户从未签到

发表于 2009-3-18 13:54:37 | 显示全部楼层

回复 楼主 的帖子

为什么debug版本的库都说缺少插件呢?只有release版本的能用

该用户从未签到

 楼主| 发表于 2009-3-19 10:00:31 | 显示全部楼层
感谢楼上提出的问题!我回去试试。
不过 osg编译debug库时,默认只给主程序和库文件名后加“d”,osgPlugin的debug库和release库文件名完全一样。我修改了其中一个cmake模块文件,在编译osgPlugin的debug库时自动为所有osg插件库文件名后加“d”,以区别debug库和release库。不知是不是这个改动导致debug库找不到插件。

该用户从未签到

发表于 2009-3-19 12:38:17 | 显示全部楼层
恐怕就是这个区别造成它无法找到插件~~

该用户从未签到

 楼主| 发表于 2009-3-19 23:28:43 | 显示全部楼层
改回去很简单,可是生成的osgplugin的debug库和release库名称完全相同,在同一路径中就不能同时包含两个库了,这又怎么解决呢?当初修改那个cmake模块文件就是为了避免两个版本的库文件重名。

该用户从未签到

 楼主| 发表于 2009-3-20 09:40:35 | 显示全部楼层
我修改的是CMakeModules\ OsgMacroUtils.cmake第152行,在最后的引号中添加了${CMAKE_DEBUG_POSTFIX},编译的osgPlugin的debug库文件名后就会自动添加“d”后缀。但这样做却导致debug编译时找不到插件!
        试验了一下,debug库是可以用的,须将bin\osgPlugins-2.8.0\下debug库文件的“d”后缀去掉(要先将release库相应文件改名,否则会重名)就可以了。另一方面,所有的插件库文件必须位于osgPlugins-2.8.0目录下。
        现在的权益方案是:1、将两个库的文件存于不同的文件夹中,如将debug库存于osgPlugins-2.8.0文件夹,将release库存于osgPlugins-release-2.8.0文件夹;2、去掉debug插件库所有文件的“d”后缀;3、在编译release程序时,手动将osgPlugins-2.8.0改名为osgPlugins-debug-2.8.0,将osgPlugins-release-2.8.0改名为osgPlugins-2.8.0。
        如果能修改osg源文件,使其可以在osgPlugins-debug-2.8.0中寻找插件库文件就好了,或者使osg识别带“d”后缀的库文件也行。请大家帮忙想想办法。

[ 本帖最后由 x_wp 于 2009-3-20 10:56 编辑 ]

该用户从未签到

发表于 2009-3-20 10:16:51 | 显示全部楼层
如果您真的想要修改osg源文件的话,可以参看osgDB目录的Registry.cpp,Registry::createLibraryNameForExtension函数,其中有这样的字段:
  1. #if defined(__CYGWIN__)
  2.     #ifdef _DEBUG
  3.         return prepend+"cygwin_"+"osgdb_"+lowercase_ext+OSG_DEBUG_POSTFIX_WITH_QUOTES+".dll";
  4.     #else
  5.         return prepend+"cygwin_"+"osgdb_"+lowercase_ext+".dll";
  6.     #endif
  7. #elif defined(__MINGW32__)
  8.     return prepend+"mingw_"+"osgdb_"+lowercase_ext+".dll";
  9. #elif defined(WIN32)
  10.     #ifdef _DEBUG
  11.         return prepend+"osgdb_"+lowercase_ext+ OSG_DEBUG_POSTFIX_WITH_QUOTES +".dll";
  12.     #else
  13.         return prepend+"osgdb_"+lowercase_ext+".dll";
  14.     #endif
复制代码
很显然MINGW的定义中没有给出DEBUG版的情况,我不知道这是出于什么样的考虑。x_wp可以尝试改一下,如果觉得用起来没有什么问题的话,也可以向osg-submissions提交您的更改

该用户从未签到

 楼主| 发表于 2009-3-20 18:09:40 | 显示全部楼层
按照阿锐的提示,修改三个地方后重新编译了debug库,再编译osganimate的debug版本后顺利运行,没有出现找不到插件的问题了。已经下载OpenSceneGraph_2.8_MinGW.7z的友友请下载附件中的libosgDBd.zip,解压到bin目录下覆盖原文件即可解决debug库找不到插件的问题。正在上传重新打包的库文件,可这次不知道怎么回事,7z的压缩包传不上去,文件扫描完成之后停在开始上传那里不动,只好传了个zip包,体积比7z包大了一倍左右。
另外,在这次的压缩包中加入了FlySky发布的“osg-2.8.0-vc80sp1-installer.exe”中提取的doc文档,希望FlySky不要见怪。

[ 本帖最后由 array 于 2009-3-21 18:20 编辑 ]

libosgDBd.zip

1.53 MB, 下载次数: 764, 下载积分: 威望 1

该用户从未签到

 楼主| 发表于 2009-3-21 17:02:53 | 显示全部楼层
刚刚把7z的包也上传成功了。

[ 本帖最后由 x_wp 于 2009-3-21 20:06 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表