在64位Linux下编译dtAgeiaPhysX
创始人
2024-06-16 07:20:24
0

dtAgeiaPhysX是Delta3D 的一个插件,封装了 nVidia 的 PhysX。为了使用它,当然也就要编译Delta3D。不幸的是,编译 Delta3D 已经是一个不小的工作,而且 PhysX 没有64位版本,这样的话,所有的相关软件都得安装或编译32位版本。麻烦程度远超俺滴想象。要说明一下,好象 Delta3D svn 库里的 CMakeLists.txt 文件是有点问题的,我已经修正过了,不过已经不记得改了些什么,总之不是很难,这里就不记了。

总的说,由于64位系统绝大多数32位软件或库都没有有安装的,所以,编译过程经常遇到 incompatible 的库文件之类的错误,这个时候,可以用 rpm -qf 库文件全路径名 来查一下到底是那个库。知道了库名字,就可以用 yum install 库名字.i586 来安装它的32位版本了。安装的时候很容易出现冲突(部分文件与64位版本重复),安装不成功,需要鉴别一下,如果只是 doc 或 include 之类的文件有冲突的话,可以大胆的覆盖,这时候可以到 /var/cache/yum/ 中相应的子目录中去找到下载的 rpm 包,用 rpm -ivh --force rpm文件名 来强制覆盖安装。

苦恼的是,CMake 脚本通常通过 CMAKE_SIZEOF_VOID_P 是否为 8 来判定是否为 64 位系统,这样一来,32位库也会被安装到 lib64 目录里去。我想,要么改 CMakeLists.txt ,直接设置目标目录为 lib,要不,就只好不用 make install 了,自己手动安装。郁闷。没有办法告诉 cmake 说我要编译 32 位版本吗?--改了 CMakeLists.txt,直接把 LIB_POSTFIX 设为空完事。

Delta3D : 一个开源3D仿真/游戏引擎软件,集成了很多相关组件,如 ODE 、 OpenDIS 、 OpenAL 等等,几乎具备了直接制作 3D 仿真系统或游戏的能力。3D方面主要基于 OSG 。

修改 CMakeLists.txt 文件,找到合适的位置,在 CMAKE_CXX_FLAGS 中加入 -m32 参数,强制编译成 32 位版本。如果实在不想找,就在最末尾直接加上: SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32"。

下面几个问题应该是 GCC 版本引起的,看来是新版本的 GCC 中 cstdio 不再作为默认包含的头文件了。

中 snprintf 未定义,修改此文件,加入 #include 就好。

中 va_list 未定义,同上,修改此文件,加入 #include 就好。

中 fpos_t 未定义,处理同上。

不知为什么死活要找 /usr/local/lib64/libgne.a,强行改 CMakeModules/FindGNE.cmake 文件,直接赋值。现在怀疑是 cache 的问题。

OSG : 全称 Open Scene Graph ,基本上是 OpenGL 的 C++ 封装,不过提供了相当多的高级功能,基本上是一个完整的 3D 引擎。

dtAgeiaPhysX : 是 nVidia PhysX 物理引擎(原是 Ageia 公司开发的,此公司已被 nVidia 收购)的封装,针对 Delta3D 集成。

OpenDIS :

它没有用 CMake ,麻烦一些,要加入 -m32 参数,去改 Makefile 吧,不过它的主 Makefile 里什么也没有,倒是另有 4 个 Makefile,一个 DIS.mak 是主要的,另外有两个 example 的 .mak 文件,以及一个单元测试的 .mak 文件,没办法,一个个改吧。

HawkNL :

GNElib :

gdal : 这个家伙其实是个比较通用的库,不应该列在这里,不过它出现的情况比较特殊,还不到连接的时候,就以编译错误的形式出现,和其它库的情况不同。其实也是由于没有 32 位包,它就少了一个 cpl_config-32.h 头文件,装上32位包……在我的系统上它一家伙带上了 17 个“家属”软件--要不是现代 Linux 版本都有自动依赖解析机制,会让人抓狂的。
 

【编辑推荐】

  1. 如何在Windows中编译Linux/Unix代码
  2. Linux Shell变量的使用轻松学习
  3. Linux shell学习之:unix/linux shell的发展历程

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...