ubuntu 16.04 编译与安装 abseil 库

引言:

在编译最新cartography的时候发现最新的版本中已经将abseil库改成absl库,所以需要单独编译abseil库了

1. 下载

git clone https://github.com/abseil/abseil-cpp

2. 编译

新建目录:

$ cd abseil-cpp
$ mkdir bulid     
$ mkdir install   

编译:

$ cd build
$ cmake ..   -DCMAKE_INSTALL_PREFIX=../install/  -DCMAKE_CXX_STANDARD=11

make 并安装

$ make 
$ make install

此时在install 中生成了include 和lib 了,可以直接拿去使用,但是一大堆的静态库一个个链接实在麻烦。

3. 生成静态库

默认会产生了一大堆静态库文件,使用不方便,所以我们将所有的静态库打包成一个libabsl.a静态库。

#当前还是在build 目录中
$  find ./ -name "*.o" | xargs ar cr libabsl.a
$ cp libabsl.a ../install

4. linux 中系统路径下 使用

将install 中的include 文件夹拷贝到  /usr/local/include中的头文件 ,刚刚生成的libabsl.a 拷贝到 /usr/local/lib 中

$ cd ../install  
$ sudo cp include/absel -R /usr/local/include  
$ sudo cp libabsl.a /usr/lib

然后就可以在gcc 编译中直接链接使用了。

测试例子:

#include 
#include 

using namespace std;

int main()
{
    absl::string_view sv = "hello world";

    cout<

编译验证:

$ g++ hello.cpp -o hello -labsl 
$ ./hello
$ hello world

5. 在任意路径下的链接使用

将当前的路径添加到相应的编译路径中即可 。例如在qt 中使用

pro 文件中末尾添加库的路径

unix:!macx: LIBS += -L$$PWD/../Download/abseil-cpp/install/ -labsl

INCLUDEPATH += $$PWD/../Download/abseil-cpp/install/include/
DEPENDPATH += $$PWD/../Download/abseil-cpp/install/include/

unix:!macx: PRE_TARGETDEPS += $$PWD/../Download/abseil-cpp/install/libabsl.a

主函数:

#include "mainwindow.h"
#include 

#include 
#include 

using namespace std;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();


    absl::string_view sv = "hello world";

    std::cout<< sv <

运行结果:

ubuntu 16.04 编译与安装 abseil 库_第1张图片

 

参考链接:

https://blog.csdn.net/qiuguolu1108/article/details/106445859/

 

你可能感兴趣的:(ubuntu,系统配置,ubuntu,编译abseil,abseil)