【问题标题】:Boost library issues提升库问题
【发布时间】:2017-03-28 15:37:06
【问题描述】:

我正在尝试使用包含 boost 的 g++ 编译一个简单的 c++ 程序,但我收到以下错误。我从 boost 站点中的 tar 文件安装了它。我只在 asio 库中收到以下错误。

$ g++ -std=c++03 -Wall -pedantic -g -O2 tcp.cpp -lboost_system -lboost_date_time -lboost_thread -lboost_asio
/usr/bin/ld: cannot find -lboost_asio
collect2: error: ld returned 1 exit status

【问题讨论】:

  • 找不到 -lboost_asio 是不言自明的。

标签: c++ boost


【解决方案1】:

Boost Asio 只是标题。

删除-lboost_asio

【讨论】:

  • 当我删除它时它会编译,但运行 pgm 时出现以下错误../a.out: 加载共享库时出错:libboost_system.so.1.55.0: 无法打开共享对象文件:没有这样的文件或目录
  • 如果 Asio 依赖于需要编译的组件,我不确定它是否算作“仅标头”。
  • 我正在尝试从 boost asio 页面编译一个示例程序
【解决方案2】:

ASIO 没有为其构建的库,因此将 -lboost_asio 指定为一个选项实际上没有意义。

但是,ASIO 确实依赖于 boost.system,这确实需要为其构建一个库。

确保您首先正确构建了 boost 库(正确的优化标志、正确的运行时库链接、正确的体系结构等),并且生成的库文件(.so 文件,在您的case) 可以被可执行文件访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多