最近在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
最后,成功编译: