SOIL NDK编译

主页 下载
cd进入SOIL/projects/makefile目录,运行make命令编译报错:
error:  unable to open output file ‘obj/image_helper.o’: ‘No such file or directory’
在makefile目录下新建obj目录重新make可以重新编译生成libSOIL.a库文件了,但此时库文件仍是32位的,修改makefile文件,加入编译选项-m64,重新编译生成即可

如果需要编译android平台,需要使用ndk里面的编译链,并修改SOIL.c内一些宏定义

1、

#elif defined(__APPLE__) || defined(__APPLE_CC__)

/* I can't test this Apple stuff! */

#include <OpenGL/gl.h>

#include <Carbon/Carbon.h>

#define APIENTRY

#elif defined __ANDROID__

#include <GLES2/gl2.h>

#else

#include <GL/gl.h>

#include <GL/glx.h>

#endif

2、

#ifndef __ANDROID__

typedef void (APIENTRY * P_SOIL_GLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data);

P_SOIL_GLCOMPRESSEDTEXIMAGE2DPROC soilGlCompressedTexImage2D = NULL;

#else

#define soilGlCompressedTexImage2D glCompressedTexImage2D

#endif

3、

/*  unsigned int clamp_mode = SOIL_CLAMP_TO_EDGE;  */

/*  unsigned int clamp_mode = GL_CLAMP; */

unsigned int clamp_mode = GL_CLAMP_TO_EDGE;


修改makefile

1、设置工具链 :

       ARCH_ABI="arm-linux-androideabi-4.8"
       HOSTOSN="darwin-x86_64"

       export AR="$NDK_ROOT/toolchains/${ARCH_ABI}/prebuilt/${HOSTOSN}/bin/arm-linux-androideabi-ar"
       export LD="$NDK_ROOT/toolchains/${ARCH_ABI}/prebuilt/${HOSTOSN}/bin/arm-linux-androideabi-ld"
       export CC="$NDK_ROOT/toolchains/${ARCH_ABI}/prebuilt/${HOSTOSN}/bin/arm-linux-androideabi-gcc"
       export CXX="$NDK_ROOT/toolchains/${ARCH_ABI}/prebuilt/${HOSTOSN}/bin/arm-linux-androideabi-g++"

#这个rand要设置,要不然就会在ld的时候用了默认的ranlib, 出错:no archive symbol table (run ranlib)

       export RANLIB="$NDK_ROOT/toolchains/${ARCH_ABI}/prebuilt/${HOSTOSN}/bin/arm-linux-androideabi-ranlib"
       export STRIP="$NDK_ROOT/toolchains/${ARCH_ABI}/prebuilt/${HOSTOSN}/bin/arm-linux-androideabi-strip"

2、设置sysroot,这个是相当于-L -I操作。指定库和源文件
       export CPPFLAGS="--sysroot=$NDK_ROOT/platforms/android-19/arch-arm" 
       export CFLAGS="--sysroot=$NDK_ROOT/platforms/android-19/arch-arm" 

android-19/ 这个挑一下你本地有的最新的就好。

可以参考demo


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值