NxOgre编译备忘

Posted on 2008-07-09 11:51 RichardHe 阅读(474) 评论(0)  编辑 收藏 引用 所属分类: OGRE

NxOgre编译备忘

windows2000,VS2005编译NxOgre

环境:windows2000,vs2005(c++,team suite),.net1.0

 

主要内容

1. vs2005 sp1

2. ogre1.40:

3 PhsyX2.62

4. NxOgre

5 编译NxOgre tutorials

 

 

1. vs2005 sp1

 

    1.1 查看自己的vs2005是否已经安装了sp1。

        a) 在IDE里选择“帮助->关于Visual Studio 2005”菜单项,查看一下,确认SP1列为其中一个安装的产品:

        b) 在IDE里选择“文件->新项目”菜单项,查看一下,确认VS 2005 Web应用项目模型选项(是内置于SP1中的)被安装了,而且是起作用的:

        (引自http://www.shengfang.org/blog/in ... a2aaf8dc91169701875

 

    1.2 sp1的下载

        (引自http://hi.baidu.com/yongfa365/bl ... e5b57fcb80c484.html

        VS2005 SP1英文正式版下载地址 431M http://download.microsoft.com/do ... B926601-X86-ENU.exe

        VS2005 SP1中文正式版下载地址 440M

http://download.microsoft.com/do ... B926604-X86-CHS.exe

 

    1.3 sp1的安装注意事项

        1.安装时间会非常长,如果机器配置不是很高的话需要2个小时,一般的话也需要1个小时左右所以请耐心等待。

        2.安装前检查你的c盘是否有大于3G的空余空间,因为安装的时候会释放很多临时文件在c盘,如果不能保证大于3g的话可能会发生异常错误,不过我在安装的时候没有占用3G这么恐怖,不过也起码占用了1G多的空间。

          (sp1下载到的那个磁盘分区,最好空间也要大一些)

        3.如果你以前安装过web application project,在安装vs2005 sp1以前请先把他卸载,不然不能成功安装vs2005 sp1

        4.vs2005sp1的补丁包是把你机器上所有单独装过vs2005的版本的补丁都打上,如果机器上装了Visual Web Developer Express和Visual Studio team sutie,那么他就要运行安装补丁两次.

    (引自http://www.cnblogs.com/ltp/archive/2007/02/25/656562.html

 

    1.4 安装sp1

        在http://www.cnblogs.com/ltp/archive/2007/02/25/656562.html【文1】中有vs2005 sp1安装的一般方法。

        可是,1.我的机器是windows2000,找不到“软件限制策略”。2.执行【文1】中的.bat文件时出错--无法将相应的键值导入注册表。

        解决方法是手动导入注册表键值:

             * "开始"-》“运行”-》键入regedit(回车)。

             * 找到HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer

             * 在其下面建立一项:名称:MaxPatchCacheSize,类型:REG_DWORD,数据值:0

 

    现在执行批处理文件来安装

    假设下载的sp1存放在目录dir下,

        1).在dir目录下建立a.bat文件。

        2).用记事本打开a.bat,把下列的代码复制进去,保存,关闭。

                regedit export HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer installer.reg

                regedit add HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /t REG_DWORD /d 0 /f

                net stop msiserver

                start /wait VS80sp1-KB926604-X86-CHS.exe

                //(本行是注释,不要拷贝)VS80sp1-KB926604-X86-CHS.exe是下载的中文sp1文件的名称。如果下载英文的sp1,需作相应的替换

                regedit delete HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /f

                regedit import installer.reg

                net stop msiserver

                del /q installer.reg 2>nul

        3).双击执行a.bat。虽然在我的window2000上仍旧会有几个错误。但可以无视之。 sp1开始安装了。

 

    cpu1.7G,内存256M。安装时间近3小时,c盘占了1G。

 

 

安装NxOgre基本是按照官方的安装步骤:http://nxogre.org/Installing

 

2. ogre1.40:

    在这里下载以下两个包http://www.ogre3d.org/index.php? ... =412&Itemid=132

    ogre-win32-v1-4-0.zip(解压缩到H:\ProgramFiles\Ogre\ogrenew)

    OgreDependencies_VC8SP1_Eihort_20070323.zip(解压缩到H:\ProgramFiles\Ogre\ogrenew下)

    编译ogre.sln顺利通过

 

    注意,要有足够的硬盘空间来编译ogre的源代码!我选择批编译-》全部。编译完成后,ogrenew目录竟然有4.59G!!!*.obj *.ncb *.sbr *.idb *.pdb *.dep文件占了3.47G!

 

 

3 PhsyX2.62

    可以参照官方的步骤http://nxogre.org/Installing

 

 

4. NxOgre

    4.1 下载NxOgre

        NxOgre.0.4.RC3.zip(可以在官方http://nxogre.org下载)

        NxOgre.0.4.RC3.tutorials.zip(可以在官方http://nxogre.org下载)

        NxOgrePatch-ForEihort-VS8SP1.zip(download from http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=3505

 

    4.2 解压缩

        三个包全部解压缩到H:\ProgramFiles\Ogre\NxOgre

 

    4.3 设置环境变量

        NXOGRE_DIR=H:\ProgramFiles\Ogre\NxOgre

        OGRE_HOME=H:\ProgramFiles\Ogre\ogrenew\OgreMain;H:\ProgramFiles\Ogre\ogrenew

        (OGRE_HOME的值设置的可能有问题。因为编译NxOgre tutorials时提示找不到ogre.h)

        PHYSX_DIR=H:\Program Files\AGEIA Technologies\AGEIA PhysX SDK\v2.6.2

 

    4.4 编译NxOgre

        打开H:\ProgramFiles\Ogre\NxOgre\NxOgre.VC8.sln

        可能是前面的OGRE_HOME设置的不对,所以需要加入ogre的目录才能编译通过

        在属性->c/c++->inlude目录里“最前面”加入“H:\ProgramFiles\Ogre\ogrenew\OgreMain\include”编译ok

        在属性->链接->库目录“最后”加入"H:\ProgramFiles\Ogre\ogrenew\lib"

 

5 编译NxOgre tutorials

    5.1

        打开H:\ProgramFiles\Ogre\NxOgre\tutorials\NxOgreTutorials.sln

        可能是前面的OGRE_HOME设置的不对,所以需要加入ogre的目录才能编译通过

        在属性->c/c++->inlude目录里后面附加

        H:\ProgramFiles\Ogre\ogrenew\OgreMain\include;

        H:\ProgramFiles\Ogre\ogrenew\Dependencies\include

        在属性->链接->库目录“最后”附加

        H:\ProgramFiles\Ogre\ogrenew\lib;

        H:\ProgramFiles\Ogre\ogrenew\Dependencies\lib\Release

 

    5.2 修改源文件

        引自http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=3508

        以101.cpp文件和其项目为例。其他同理

            1.如果提示“error C2039: 'relX' : is not a member of 'OIS::MouseState' ”

            需要用ms.X.rel替换ms.relX

            

            如果提示“error C2039: 'relY' : is not a member of 'OIS::MouseState' ”

            需要用ms.X.rel替换ms.relY

            

            如果提示“error C2039: 'relZ' : is not a member of 'OIS::MouseState' ”

            需要用ms.Z.rel替换ms.relZ

                        

            2.如果提示MSVCRT.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup

            Release/nxTutorial101.exe : fatal error LNK1120: 1 unresolved externals

            一个可行的解决方法:

                a.先将tutorialApplicationEihort.h中的这段代码注释掉

                        #ifdef _CONSOLE

                            #define TUTORIAL_VOIDMAIN \

                            int main(int argc, char *argv[]) {\

                                ...

                            }

                        #else

                            #define TUTORIAL_VOIDMAIN \

                            INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT ) {\

                                 ...

                            }

                        #endif

                b.将a中所说的main函数或winmain函数拷贝到101.cpp末尾。

 

            3.可能还需要注释掉main或WinMain函数中的SET_TERM_HANDLER;

            4.注释掉101.cpp末尾的TUTORIAL_VOIDMAIN

 

其他问题可以到NxOgre论坛咨询:

http://www.ogre3d.org/phpBB2addo ... 5649a7b87f21b4a057b

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


posts - 94, comments - 138, trackbacks - 0, articles - 94

Copyright © RichardHe