查看: 6009|回复: 12

windows下编译osg for android, 在cygwin的make时出错,求解

[复制链接]

该用户从未签到

发表于 2012-8-9 23:17:52 | 显示全部楼层 |阅读模式
我的系统是win 7 x64 英文版
简单的说,我做的事情如下:
用svn checkout了最新的osg
cmake版本为cmake-2.8.8-win32-x86
下载了 3rdpartyAndroid.zip,并且在cmake中设置路径为3rdpartyAndroid\build
cmake的其他配置参考了这篇文章:
http://www.openscenegraph.com/in ... h-for-android-3-0-2

cygwin中make之后报的错误如下,在最后:
xuhy@xuhy-PC /cygdrive/f/osgeo4w/osg/trunk/build
$ make
Scanning dependencies of target ndk
[100%] Generating Android-OpenSceneGraph
HOST_OS=cygwin
HOST_ARCH=x86
HOST_TAG=cygwin-x86
GNUMAKE=/usr/bin/make (system path)
Cygwin-compatible GNU make detected
Android NDK: NDK installation path auto-detected: '/cygdrive/f/Android/IDE/andro                       id-ndk-r8-windows'
Android NDK: GNU Make version 3.82.90 detected
Android NDK: Host OS was auto-detected: windows
Android NDK: Found /bin/uname.exe on Windows host
Android NDK: uname -s returned: CYGWIN_NT-6.1-WOW64
Android NDK: Cygwin detected: CYGWIN_NT-6.1-WOW64 xuhy-PC 1.7.15(0.260/5/3) 2012                       -05-09 10:25 i686 Cygwin
Android NDK:  Host operating system detected: cygwin
Android NDK: Host CPU was auto-detected: x86
Android NDK: HOST_TAG set to windows
Android NDK: Host tools prebuilt directory: /cygdrive/f/Android/IDE/android-ndk-                       r8-windows/prebuilt/windows/bin
Android NDK: Host 'echo' tool: /cygdrive/f/Android/IDE/android-ndk-r8-windows/pr                       ebuilt/windows/bin/echo
Android NDK: Host 'awk' tool: awk
Android NDK: Host 'awk' test returned: Pass
Android NDK:  Probing for 'cygpath' program
Android NDK:  'cygpath' found as: /usr/bin/cygpath
Using cygwin substitution rules:
/cygdrive/f => F:
/cygdrive/e => E:
/cygdrive/d => D:
/cygdrive/c => C:
/cygdrive/F => F:
/cygdrive/E => E:
/cygdrive/D => D:
/cygdrive/C => C:
/usr/lib => D:/cygwin/lib
/usr/bin => D:/cygwin/bin
/ => D:/cygwin
Android NDK:  This NDK supports the following target architectures and ABIS:
Android NDK:    arm: armeabi armeabi-v7a
Android NDK:    mips: mips
Android NDK:    x86: x86
Android NDK:  This NDK supports the following toolchains and target ABIs:
Android NDK:    arm-linux-androideabi-4.4.3:  armeabi armeabi-v7a
Android NDK:    mipsel-linux-android-4.4.3:  mips
Android NDK:    x86-4.4.3:  x86
Android NDK: Found platform root directory: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms
Android NDK: Found supported platforms: android-4 android-3 android-14 android-8 android-9 android-5
Android NDK: PLATFORM android-4 supports: x86 arm mips
Android NDK:   ABI x86 sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-4/arch-x86
Android NDK:   ABI arm sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-4/arch-arm
Android NDK:   ABI mips sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-4/arch-mips
Android NDK: PLATFORM android-3 supports: x86 arm mips
Android NDK:   ABI x86 sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-3/arch-x86
Android NDK:   ABI arm sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-3/arch-arm
Android NDK:   ABI mips sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-3/arch-mips
Android NDK: PLATFORM android-14 supports: x86 arm mips
Android NDK:   ABI x86 sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-14/arch-x86
Android NDK:   ABI arm sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-14/arch-arm
Android NDK:   ABI mips sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-14/arch-mips
Android NDK: PLATFORM android-8 supports: x86 arm mips
Android NDK:   ABI x86 sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-8/arch-x86
Android NDK:   ABI arm sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-8/arch-arm
Android NDK:   ABI mips sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-8/arch-mips
Android NDK: PLATFORM android-9 supports: x86 arm mips
Android NDK:   ABI x86 sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-9/arch-x86
Android NDK:   ABI arm sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-9/arch-arm
Android NDK:   ABI mips sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-9/arch-mips
Android NDK: PLATFORM android-5 supports: x86 arm mips
Android NDK:   ABI x86 sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-5/arch-x86
Android NDK:   ABI arm sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-5/arch-arm
Android NDK:   ABI mips sysroot is: /cygdrive/f/Android/IDE/android-ndk-r8-windows/platforms/android-5/arch-mips
Android NDK: Found stable platform levels: 4 3 14 8 9 5
Android NDK: Found max platform level: 14
Android NDK: Found project path: .
Android NDK: Ouput path: ./obj
Android NDK: Parsing Application.mk
Android NDK: Application local targets unknown platform '5'
Android NDK: Switching to android-14
Android NDK:   Using build script ./Android.mk
Android NDK: Application 'local' is not debuggable
Android NDK: Selecting optimization mode through Application.mk: release
Android NDK: Adding import directory: /cygdrive/f/Android/IDE/android-ndk-r8-windows/sources
Android NDK: Building application 'local' for ABI 'armeabi'
Android NDK: Using target toolchain 'arm-linux-androideabi-4.4.3' for 'armeabi' ABI
Android NDK: Looking for imported module with tag 'cxx-stl/gnu-libstdc++'
Android NDK:   Probing /cygdrive/f/Android/IDE/android-ndk-r8-windows/sources/cxx-stl/gnu-libstdc++/Android.mk
Android NDK:     Found in /cygdrive/f/Android/IDE/android-ndk-r8-windows/sources/cxx-stl/gnu-libstdc++
Android NDK: Trying to define local module 'OpenThreads' in F:/osgeo4w/osg/trunk/build/src/OpenThreads/pthreads/Android.mk.
Android NDK: But this module was already defined by F:/osgeo4w/osg/trunk/build/src/OpenThreads/pthreads/Android.mk.
/cygdrive/f/Android/IDE/android-ndk-r8-windows/build/core/build-module.mk:34: *** Android NDK: Aborting.    .  Stop.
CMakeFiles/ndk.dir/build.make:52: recipe for target `Android-OpenSceneGraph' failed
make[2]: *** [Android-OpenSceneGraph] Error 2
CMakeFiles/Makefile2:60: recipe for target `CMakeFiles/ndk.dir/all' failed
make[1]: *** [CMakeFiles/ndk.dir/all] Error 2
Makefile:113: recipe for target `all' failed
make: *** [all] Error 2

是啥原因?
有编译成功的朋友指点一下,谢谢。

该用户从未签到

发表于 2012-8-10 13:01:19 | 显示全部楼层
记不清了,不过我在Ubuntu下面也见过这个错误,貌似是NDK自己的问题,重新找个目录cmake一下也许就可以了

该用户从未签到

 楼主| 发表于 2012-8-10 13:13:55 | 显示全部楼层
谢谢老大,我再试试

该用户从未签到

发表于 2012-9-10 12:37:36 | 显示全部楼层
我也遇到了同样的问题,换个目录cmake并不能解决问题,楼主是怎么解决的?

该用户从未签到

发表于 2013-3-28 08:22:50 | 显示全部楼层
您好,我刚着手做android开发,也出现此类问题,请问楼主是怎么解决的?

该用户从未签到

 楼主| 发表于 2013-4-2 10:26:45 | 显示全部楼层
红果儿 发表于 2013-3-28 08:22
您好,我刚着手做android开发,也出现此类问题,请问楼主是怎么解决的?

换一个ndk版本,比如android-ndk-r8。

该用户从未签到

 楼主| 发表于 2013-4-2 10:27:11 | 显示全部楼层
whuwy 发表于 2012-9-10 12:37
我也遇到了同样的问题,换个目录cmake并不能解决问题,楼主是怎么解决的?

换一个ndk版本,比如android-ndk-r8。

该用户从未签到

发表于 2013-4-2 10:39:55 | 显示全部楼层
xuhaiyan8825 发表于 2013-4-2 10:27
换一个ndk版本,比如android-ndk-r8。

嗯,谢谢您分享的文章,参考您的文章我换成r8现在可以了。手机运行GLES1例子加载模型,不论是cow.osg,还是.ive都没有纹理,请问老师是怎么解决的?

该用户从未签到

 楼主| 发表于 2013-4-8 16:56:46 | 显示全部楼层
红果儿 发表于 2013-4-2 10:39
嗯,谢谢您分享的文章,参考您的文章我换成r8现在可以了。手机运行GLES1例子加载模型,不论是cow.osg,还 ...

这个和板子有很大关系,板子底层对纹理格式的支持不一样,另外,你还得检查自己的osg是否加入了对该纹理的支持。
我显示都用.osg格式,带tga的纹理图片,其他的像jpg这种,有些板子显示不了。
ive的有些也显示不了。
你试试tga格式纹理的.osg模型吧

该用户从未签到

发表于 2013-4-22 15:21:21 | 显示全部楼层
xuhaiyan8825 发表于 2013-4-8 16:56
这个和板子有很大关系,板子底层对纹理格式的支持不一样,另外,你还得检查自己的osg是否加入了对该纹理的 ...

您好,试了将tga插件加入,osg格式的也可以正常读了。另外,请教如果是大面积的模型怎么快速读入呢?我试了将一个18M的模型文件加入要很长时间才能显示出来……,模型不能使用dds纹理?怎么压缩纹理呢?另外您是怎么实现自己的漫游的?相关资料可否分享学习一下,帮帮忙吧,谢谢

该用户从未签到

发表于 2013-4-22 15:24:26 | 显示全部楼层
红果儿 发表于 2013-4-22 15:21
您好,试了将tga插件加入,osg格式的也可以正常读了。另外,请教如果是大面积的模型怎么快速读入呢?我试 ...

电脑和手机 可是不一样 大模型 需要考虑的就很多了 手机只能支持某些特定格式的压缩纹理

该用户从未签到

 楼主| 发表于 2013-4-22 21:57:06 | 显示全部楼层
红果儿 发表于 2013-4-22 15:21
您好,试了将tga插件加入,osg格式的也可以正常读了。另外,请教如果是大面积的模型怎么快速读入呢?我试 ...

漫游那个后来没做完,停了。
大面积模型,没有经验,曾经试过lod方式,但是是多个,不是一个。

该用户从未签到

发表于 2013-5-3 21:46:18 | 显示全部楼层
xuhaiyan8825 发表于 2013-4-22 21:57
漫游那个后来没做完,停了。
大面积模型,没有经验,曾经试过lod方式,但是是多个,不是一个。

谢谢您的回复,我也先搁置了。现在打算写个文件浏览管理的activity动态加载模型文件,但不显示模型。估计和您所说的屏幕关闭再打开内存纹理资源被释放是一个问题吧?想请教一下您具体是怎么保存内存资源又是怎么恢复的呢?如果有参考代码供学习研究就最好不过了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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