如何给Makefile指定自己想用的gcc/g++版本(编译开源项目acl-dev/acl库时的经历)


最近在Github上找到了一个很不错的C++服务器框架库,所以Clone了一份想试试,下图是该项目首页:

项目主持人也给出了相应平台的库编译方式(此处只涉及其常用的三个库):

以上是三库合一的编译方式,当然也可独自编译。如果这样,需要注意一点:

因为 lib_acl 是最基础的库,而 lib_protocol 依赖于 lib_acl,lib_acl_cpp 依赖于 lib_protocol 和 lib_acl,所在生成动态库时,需要注意生成顺序,编译顺序为:lib_acl,lib_protocol,lib_acl_cpp。 


此处采用最简单三库和一的编译方式:即简单的使用命令 make build_one (其Makefile文件就在项目根目录下)

编译时出现致命错误,无法编译:

究其原因,最后发现有可能是gcc版本过高!!(上图编译用的是gcc-9.1)

最后不得不去下载一个较低版本的gcc,选了gcc-4.9

有了低版本的GCC之后,就可以重新开始编译了,使用如下命令指定低版本GCC:

make build_one CC=gcc-4.9 CPP=g++-4.9 CXX=g++-4.9 LD=g++-4.9

结果发现又编译不过,报错如下(无共享库libmpfr.so.4):

/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory

此时只需使用如下命令创建libmpfr.so.4(简单的建立一个软链接就行):

 ln -s /usr/lib/libmpfr.so.6 /usr/lib/libmpfr.so.4 

最后,成功编译:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值