ubuntu 安装 boost 遇到的坑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
gramyang
V2EX    Linux

ubuntu 安装 boost 遇到的坑

  •  
  •   gramyang 2019 年 12 月 14 日 7507 次点击
    这是一个创建于 2325 天前的主题,其中的信息可能已经有所发展或是发生改变。
    手动 wget 下载 boost,解压后编译成功后,用./b2 install --prefix=/usr 进行安装,安装后 ldconfig 更新动态库链接。
    到这里都没问题,但是在写了一个测试程序:
    #include<iostream>
    #include<boost/asio.hpp>

    int main(){
    boost::shared_ptr<int> myPtr(new int(1));
    std::cout<<*myPtr;
    return 0;
    }

    后,g++编译时提示找不到包。。。换了别的程序也是这样。。。。这我就很迷茫了,boost 库文件在 /usr/lib 下面,boost 头文件在 /usr/include/boost 里面都能找得到。。

    为什么不用 apt-get ?因为 apt-get 死活找不到 boost 的头文件和库文件。。

    求大佬指点!
    第 1 条附言    2019 年 12 月 14 日
    好吧,我猜测是 apt 的命令错了,我的是 libboost_dev
    14 条回复    2019-12-14 23:18:50 +08:00
    northisland
        1
    northisland  
       2019 年 12 月 14 日
    很久没手动安装了,我是 sudo apt install libboost1.58-all-dev
    northisland
        2
    northisland  
       2019 年 12 月 14 日
    你用的是智能指针,应该包含<boost/shared_ptr.hpp>

    另外今年是 2019 年,你可以用用<memory>里的 std::shared_ptr
    FrankHB
        3
    FrankHB  
       2019 年 12 月 14 日
    g++ 哪有包的概念。强行要包也得 pkg-config 好吧。
    这种情况不是先 -v 自己看搜索路径么。
    nightwitch
        4
    nightwitch  
       2019 年 12 月 14 日
    从代码上来看,boost::shared_ptr 需要的头文件你没有包含进去
    其次,你如果用 g++编译,至少上个 g++的编译参数上来才能让人帮你诊断问题吧
    gramyang
        5
    gramyang  
    OP
       2019 年 12 月 14 日
    按照楼上大哥的建议:环境 ubuntu18,用 apt install libboost-all-dev 安装了 boost。路径在 /usr/include/boost,里面感觉也不分头文件和库文件,都混在一起。

    测试程序:
    #include <iostream>
    #include <boost/asio.hpp>
    #include <boost/date_time/posix_time/posix_time.hpp>

    int main()
    {
    boost::asio::io_service io;

    boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
    t.wait();

    std::cout << "Hello, world!\n";

    return 0;
    }

    编译命令:g++ t.cpp -lboost_asio -lboost_date_time -o t
    结果报错:/usr/bin/ld: cannot find -lboost_asio

    求大佬。。。
    gramyang
        6
    gramyang  
    OP
       2019 年 12 月 14 日
    @nightwitch 求大佬帮忙,新的代码在楼中
    gramyang
        7
    gramyang  
    OP
       2019 年 12 月 14 日
    @northisland 按照大佬的建议,重新安装了 boost,但是还是有问题,求帮助!
    lcdtyph
        8
    lcdtyph  
       2019 年 12 月 14 日
    asio 需要 -lboost_system ……
    lcdtyph
        9
    lcdtyph  
       2019 年 12 月 14 日
    准确得说 asio 本身是 header only 的,但是它引用了 boost::system 的一些东西,而 boost::system 默认不是 header only 的,所以链接的时候需要加上 -lboost_system
    gramyang
        10
    gramyang  
    OP
       2019 年 12 月 14 日
    @lcdtyph 牛批!!!可以了!!
    gramyang
        11
    gramyang  
    OP
       2019 年 12 月 14 日
    @lcdtyph 再请教一下,在 clion 上远程连接 ubuntu,但是运行失败,cmake:
    cmake_minimum_required(VERSION 3.1)
    project(Ctest)

    include_directories(/usr/include/boost)
    link_directories(/usr/include/boost)

    add_executable(D test/test.cpp)

    target_link_libraries(D boost_system boost_date_time)

    这个 test.cpp 和上面是一样的代码。。。
    lcdtyph
        12
    lcdtyph  
       2019 年 12 月 14 日 via iPhone
    @gramyang
    报错呢…
    gramyang
        13
    gramyang  
    OP
       2019 年 12 月 14 日
    @lcdtyph 额,搞定了,把 boost_date_time 换到 boost_system 前面就可以了
    nightwitch
        14
    nightwitch  
       2019 年 12 月 14 日
    include_directories 这种方式已经是 cmake 不推荐使用的方式了
    建议学一下怎么用 find_package 模式来链接 boost
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2860 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 12:45 PVG 20:45 LAX 05:45 JFK 08:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86