使用g++的依赖项时出现问题
Issues using dependencies with g++
我在使用g++链接到其他库时遇到了一些严重的问题,它经常让我感到沮丧,甚至在我开始之前就阻止了我。
例如:我只是在使用boost.asio,试用教程。我在文档中发现,我必须链接到boostrongystem和regex,但出于某种原因,我还必须添加pthread才能工作。。。我用"apt-get-install"安装了boost,以为我只需要链接到boost。显然错了。。。
我似乎真的不明白如何在linux上进行开发。你怎么知道什么时候需要添加库?在我举的例子中,boost依赖于pthread,所以我必须链接它。为什么我不必链接到boost依赖的任何其他东西?或者假设pthread依赖于某个东西,为什么我不必链接它(例如,为什么不必链接到标准的库)?你怎么知道g++是如何配置的?你怎么能改变它呢?
我想我的主要问题是:在linux上配置构建有什么逻辑吗?(也欢迎有用的参考资料)
最后一点令人沮丧的是:在我看来,编程总是比实际操作有趣得多,也容易得多。。。
这是由于打包错误造成的。如果库a依赖于库B,那么a应该链接到B。您的应用程序只需要链接到a。
有时某些发行版的库的打包程序会出错。你对此无能为力,真的。例如,当我在Gentoo Linux上链接到boostrongystem时,我不必链接到pthread,因为boostrongsystem本身就链接到pthread:
$ldd/usr/lib/libboostrongystem.so | grep pthreadlibpthread.so.0=>/lib64/libphread.so.0(0x00007fcf677f8000)
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- 使用mongocxx驱动程序时包含头文件问题