查看: 4995|回复: 12

各位高手帮忙看看!

[复制链接]

该用户从未签到

发表于 2008-2-27 10:03:22 | 显示全部楼层 |阅读模式
各位大虾
本人OSG初学者
现在用的语言是Borland C++ Builder
现在想用BCB编译OSG中的例子
可是老是出现错误
不知道是否BCB 不能使用osg
还是别的原因
以下是运行例子 osganimate 的错误信息:
[C++ error] Math(191): E2268 Call to undefined function 'floorf'
[C++ error] Math(191): E2268 Call to undefined function  'ceilf'
[C++ error] Math(195): E2268 Call to undefined function  '_isnan'
[C++ error] Math(196): E2268 Call to undefined function  '_isnan'
[C++ error] Vec2f(147): E2268 Call to undefined function  'sqrtf'
[C++ error] Vec3f(176): E2268 Call to undefined function  'sqrtf'
[C++ error] Vec4f(211): E2268 Call to undefined function  'sqrtf'
[C++ error] BoundingBox(109): E2268 Call to undefined function  'sqrtf'

希望多多指教

该用户从未签到

发表于 2008-2-27 11:10:56 | 显示全部楼层
原帖由 dlut8417 于 2008-2-27 10:03 发表
各位大虾
本人OSG初学者
现在用的语言是Borland C++ Builder
现在想用BCB编译OSG中的例子
可是老是出现错误
不知道是否BCB 不能使用osg
还是别的原因
以下是运行例子 osganimate 的错误信息:
[C++ error]  ...


你的OSG是什么样的版本:是否是使用CMake,并选择BCB编译器生成工程后,编译源代码所得到的版本?抑或直接使用.exe文件安装得到的?我想后者是不能用于BCB的,静态库完全不兼容,在链接的时候肯定有错。
如果是前者的话,那么检查一下你的头文件,加上Borland的math.h试一试。因为你的错误都出在没有找到数学函数。
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-2-27 12:13:59 | 显示全部楼层
    直接安装是不可以的,BCB与VS,以及MGW使用的包都大有不同~~~~建议从源码编译~~~~~~~~~

    该用户从未签到

     楼主| 发表于 2008-2-27 13:46:25 | 显示全部楼层

    回复 2楼 的帖子

    现在的版本是osg 2.0
    直接通过.exe 文件安装得到的
    现在我下在cmake 试试
    谢谢啦

    该用户从未签到

     楼主| 发表于 2008-2-28 09:28:48 | 显示全部楼层
    cmake 出现如下错误
    cmake error: error in cmake code at
    e:/osg src/osgPlugins/osgFXCMakeLists.txt 15
    "SETUP_PLUGIN"
    什么原因阿
    ??
    高手多多指点

    该用户从未签到

    发表于 2008-2-28 11:29:28 | 显示全部楼层
    原帖由 dlut8417 于 2008-2-28 09:28 发表
    cmake 出现如下错误
    cmake error: error in cmake code at
    e:/osg src/osgPlugins/osgFXCMakeLists.txt 15
    "SETUP_PLUGIN"
    什么原因阿
    ??
    高手多多指点


    CMake的版本?

    该用户从未签到

     楼主| 发表于 2008-2-29 08:39:02 | 显示全部楼层

    回复 6楼 的帖子

    cmake 版本是
    cmake 2.4

    configure 设置为
    build for: "Borland Makefiles"

    该用户从未签到

    发表于 2008-2-29 14:17:06 | 显示全部楼层
    原帖由 dlut8417 于 2008-2-29 08:39 发表
    cmake 版本是
    cmake 2.4

    configure 设置为
    build for: "Borland Makefiles"


    我在CMake 2.4.6,OSG 2.34,Borland CBuilder 6.0的环境下作了实验,似乎顺利通过了。打开CMake的GUI环境,然后将OpenSceneGraph根目录下的CMakeList.txt拖动到CMake上再执行配置,这样做应该没有问题。不要将某个子目录的CMakeList拖动过去,那样会出现“宏没有定义”的情况,SETUP_PLUGIN本身就是一个CMake宏

    该用户从未签到

     楼主| 发表于 2008-2-29 18:40:27 | 显示全部楼层
    谢谢ARRAY
    按照你的提示
    发现是
    CMakeList.txt
    的原因
    现在已经顺利编译成功了
    可是在BIN文件夹下找不到相关的执行文件
    不知道什么原因
    是否还需要用bcb 在编译一次??

    该用户从未签到

    发表于 2008-2-29 18:55:46 | 显示全部楼层
    原帖由 dlut8417 于 2008-2-29 18:40 发表
    谢谢ARRAY
    按照你的提示
    发现是
    CMakeList.txt
    的原因
    现在已经顺利编译成功了
    可是在BIN文件夹下找不到相关的执行文件
    不知道什么原因
    是否还需要用bcb 在编译一次??


    生成Makefile之后,用bcc的make.exe执行lib,dll和exe的生成工作。可能会遇到很多编译错误,我没有继续下去,可能跟BCC的版本有关

    该用户从未签到

     楼主| 发表于 2008-3-4 10:20:09 | 显示全部楼层
    用bcc的make.exe
    是什么意思啊
    能否解释一下
    谢谢了
    我是超级菜的
    哈哈
    现在编译以后文件中都找不到BCB能打开的c++文件

    该用户从未签到

    发表于 2008-3-4 20:31:06 | 显示全部楼层
    原帖由 dlut8417 于 2008-3-4 10:20 发表
    用bcc的make.exe
    是什么意思啊
    能否解释一下
    谢谢了
    我是超级菜的
    哈哈
    现在编译以后文件中都找不到BCB能打开的c++文件


    CMake之后应该生成了一个Makefile文件。使用Borland CBuilder安装bin目录下的make.exe执行编译。如果已经设置了Borland CBuilder的环境变量的话,可以直接在控制台下,进入Makefile所在的文件夹(可能位于您的OpenSceneGraph根目录下),输入:
    make
    我的结果是立即提示有OpenThreads库的编译错误,这个估计是由于Borland的编译器不符合C++标准所致(大公司就是这种毛病~~ ),应该能够通过修改源代码解决,不过我没有尝试。个人不推荐使用Borland CBuilder来运行OSG

    该用户从未签到

     楼主| 发表于 2008-3-12 10:28:20 | 显示全部楼层
    可现在公司用的都是BCB了
    该用其他语言比较困难 阿
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

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

    联系我们

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