Protobuf building

       最近的项目中使用了protobuf,由于项目是跨平台的,需要编译四个版本的protobuf库来使用,分别是以下几种:


1.  Linux-32bit
2.  Linux-64bit
3.  Solaris(10)-32bit
4.  Solaris(10)-64bit


       我们有两台build server,分别是Linux-x86_64和Solaris(10)-sparc,需要进行交叉编译,生成四个版本。编译过程中,遇到了一些问题,最终得到解决,特地分享一下;另外,也是抛砖引玉,欢迎大家讨论交流。

1.  Linux-32bit
./configure LDFLAGS="-s" CFLAGS=-m32 CXXFLAGS=-m32 FFLAGS=-m32 FCFLAGS=-m32 --prefix=/u/yasaken/bin/protobuf_linux_32 --build=x86_64-gnu-linux --host=x86-gnu-linux --target=x86-gnu-linux

make 
make install


2.  Lniux-64bit
./configure LDFLAGS="-s" CFLAGS=-m64 CXXFLAGS=-m64 FFLAGS=-m64 FCFLAGS=-m64 --prefix=/u/yasaken/bin/protobuf_linux_64 --build=x86_64-gnu-linux --host=x86_64-gnu-linux --target=x86_64-gnu-linux

make 
make install


3.  Solaris-32bit
./configure LDFLAGS="-s -L${PWD}/src/solaris" CFLAGS=-m32 CXXFLAGS=-m32 FFLAGS=-m32 FCFLAGS=-m32 --prefix=/u/yasaken/bin/protobuf_solaris_32 --build=sparc-sun-solaris --host=sparc-sun-solaris --target=sparc-sun-solaris

make 
make install


4.  Solaris-64bit
  
修改文件“protobuf-2.4.1/src/solaris/libstdc++.la”如下,否则编译不过。
(1)  dependency_libs='-L/lib/64 -lc -lm -L/usr/sfw/lib/64 -lgcc_s'
(2)  libdir='/usr/sfw/lib/64'


./configure LDFLAGS="-s -L${PWD}/src/solaris" CFLAGS=-m64 CXXFLAGS=-m64 FFLAGS=-m64 FCFLAGS=-m64 --prefix=/u/yasaken/bin/protobuf_solaris_64 --build=sparc-sun-solaris --host=sparc64-sun-solaris --target=sparc64-sun-solaris

make 
make install


其中:
--prefix                     是安装目录;
--LDFLAGS="-s"      消除库的依赖性;
--CFLAGS                C compiler flags;
--CXXFLAGS            C++ compiler flags;
--FCFLAGS             设置compiler是32bit还是64bit;
--build                      configure for building on BUILD;
--host                       cross-compile to build programs to run on HOST;
--target                     configure for building compilers for TARGET; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值