• c++常用库学习


      网上推荐的c++库有boost,folly,proxygen等,但是这些都是大库,学习周期长,并且一开始就使用这些库,还是有些问题的。比如库之间的依赖关系,这个就比较难搞,这是基本的开发环境的搭建。开发c++中,linux,macos就成为了良好的库管理工具。比如usr/local/include中放置c++的头文件,/usr/local/lib中放置编译后的文件。但是我们开发的程序是怎么使用静态库文件,我对这些都知之甚少了。

      在c++中使用别人的库比java中麻烦一点,一般需要自己下载源码,使用make,cmake等工具编译,并且c++的库并不是很多,使用的时候回遇到很多问题。eclipse对于c++开发还是比较友好的,可以读取到c++的header文件和连接库(编译时也会以此为相对路径读取),比如头文件/usr/include, /usr/local/include, /user/lib, /usr/local/lib。但是这篇博文说只能链接到/usr/lib:http://www.voidcn.com/article/p-spjcvdzc-bum.html.

      我在GitHub下载了一个常用的fmt库,试用一下。这个库很成熟了,编译安装脚本都有了,但是在eclipse中调试好久后,都提示编译错误,什么x86啦,我以为是gcc的版本和编译-std的问题。折腾了很久,发现好像没有连接/usr/local/lib????  

    make all 
    Building file: ../src/learn_folly.cpp
    Invoking: GCC C++ Compiler
    g++ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++17 -MMD -MP -MF"src/learn_folly.d" -MT"src/learn_folly.o" -o "src/learn_folly.o" "../src/learn_folly.cpp"
    Finished building: ../src/learn_folly.cpp
     
    Building target: learn_folly
    Invoking: MacOS X C++ Linker
    g++  -o "learn_folly"  ./src/learn_folly.o  /usr/local/lib/libfmt.a 
    Finished building target: learn_folly

     从eclipse这个编译的命令行,可以看见使用了我配置的-std=c++17。同时使用macos的linker,连接了libfmt.a的库。

      但是我用命令行去连接那个库时,还是报错。说明我还没有彻底弄明白这个机制。

      可以命令行看man ld,ld就是链接的命令。

    In file included from /usr/local/include/folly/folly/CPortability.h:22:
    /usr/local/include/folly/folly/portability/Config.h:20:10: fatal error: 'folly/folly-config.h' file not found
    #include <folly/folly-config.h>
    

      这个错误有点难受,我看了文件夹下确实没有这个文件,但是我使用官方的安装脚本进行安装的,为甚么不对呢?

  • 相关阅读:
    2018 我要告诉你的 Vue 知识大全
    探究Javascript模板引擎mustache.js使用方法
    高性能JavaScript模板引擎实现原理详解
    junit报错
    http报文
    web应用和http协议
    eclipse首次使用基本设置
    利用亚马逊AWS搭建个人服务器
    图文详解 IntelliJ IDEA 15 创建普通 Java Web 项目
    MyEclipse 设置条件断点
  • 原文地址:https://www.cnblogs.com/Robin008/p/12080917.html
Copyright © 2020-2023  润新知