zoukankan      html  css  js  c++  java
  • 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>
    

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

  • 相关阅读:
    JavaScript对象
    Mocha+should+Karma自动化测试教程
    JavaScript中值类型与引用类型
    JavaScript函数、闭包、原型、面向对象
    Mac终端下的svn使用教程
    00.2019年12月16日,我的个人博客网站上线了
    70.JS---利用原生js做手机端网页自适应解决方案rem布局
    2.一些囊括软件知识的网址----------以下所有链接都是原著,在此对那些大神道声谢!
    1.2018年1月3日,我的博客开博了!
    94、phpcms的筛选功能的实现(新手看完就会)
  • 原文地址:https://www.cnblogs.com/Robin008/p/12080917.html
Copyright © 2011-2022 走看看