OSX 编译chillispot-1.1.0
转载请注明
本文为原创
chillispot-1.1.0-osx.tar.gz是我改后的
chillispot-1.1.0.tar.gz 是网站源码
最近发现OSX的gcc有很函数被阉掉了
比如 clearenv
最近有wifi项目
需要这个chillispot
本想编译一个在机器上查看功能
编译它,费了很大周折
以下是OSX环境,只为给大家学习,linux 编译很简单
1.移植
binutils-2.19.1.tar.bz2
gcc-4.3.3.tar.bz2
gmp-5.0.0.tar.bz2
mpfr-2.4.0.tar.bz2
sudo mkdir /usr/local/gcc-4.3.3
sudo chmod 777 /usr/local/gcc-4.3.3
tar xjvf binutils-2.19.1.tar.bz2
mkdir binbuild
cd binbuild
../binutils-2.19.1/configure --prefix=/usr/local/gcc-4.3.3/ \
--enable-shared --disable-werror \
--disable-nls \
--enable-gnu-as --enable-gnu-ld
make
make install
cd ..
tar xjvf gcc-4.3.3.tar.bz2
tar xjvf gmp-5.0.0.tar.bz2
tar xjvf mpfr-2.4.0.tar.bz2
mv gmp-5.0.0 gcc-4.3.3/gmp
mv mpfr-2.4.0 gcc-4.3.3/mpfr
mkdir gccbuild
cd gccbuild
../gcc-4.3.3/configure --prefix=/usr/local/gcc-4.3.3/ \
--enable-shared --enable-colcale=gnu \
--enable-__cxa_atexit --disable-checking \
--enable--long-long --enable-languages=c,c++
make bootstrap
make install
2.
export PATH=/usr/local/gcc-4.3.3/bin:$PATH
gcc --version
tar xzvf chillispot-1.1.0.tar.gz
cd chillispot-1.1.0
vi src/tun.h
在上面加入
#define PACKET_MAX 8196 /* Maximum packet size we receive */
#define TUN_SCRIPTSIZE 256
#define TUN_ADDRSIZE 128
#define TUN_NLBUFSIZE 1024
+ #if defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+ #define clearenv() 0
+ #define res_9_init res_init
+ #endif
struct tun_packet_t {
unsigned int ver:4;
unsigned int ihl:4;
unsigned int dscp:6;
unsigned int ecn:2;
vi src/tun.c
把里面所有
#elif defined (__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
#elif defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
如果不加 这是语法错误
不知道 是不是写的人故意的
make
编译ok
发现xcode 本身的gcc有些会被OSX定义得不兼容一些开源
要自行研究