Len*_*mel 8 linux dependencies c c++ libraries
我不得不承认,每次我必须满足某些 C 或 C++ 代码的依赖关系时,我都感到完全迷失了。目前,我使用的是Ubuntu 9.10(Karmic Koala),但我还记得 Windows 中同样的凄凉感觉。
我真的认为我确实了解 C、C++、静态和动态库、头文件和链接,以及数据包管理器的“能力”,但是说到实践部分,我完全不知道该怎么做。即使我以某种方式管理它,我也不知道我是如何到达那里的,也没有从中学到任何东西。
例如,今天我想使用声明“它使用 glib2、curl 和 openssl”的代码。最后,我想通了curl并且openssl已经安装了,但是我需要libcurl3-dev通过我的数据包管理器进行安装,这也需要(并安装),libcurl4-openssl-dev这样我就不必担心 OpenSSL。但我不得不从 67 个听起来相似的替代方案中选择这些数据包名称。并且glib,另一方面,由于根本没有匹配的数据包,因此必须手动下载和构建。
我花了几个小时才发现这一点,这不是第一次。所以我的问题是:
当我对依赖项有一个模糊的描述时:
弄清楚要安装哪些包来满足依赖关系并不是一门精确的科学。但有一些提示可能会对您有所帮助:
-dev. 这是开发的简称。例如,该openssl软件包包含用于加密的命令行工具和库。 libssl-dev包含用于 openssl 开发的头文件和库。apt-cache search。例如,我实际上并不知道 libssl-dev 是 openssl dev 包的名称。我发现使用这个命令:apt-cache search openssl | grep dev然后使用似乎与另一种语言/库无关的命令。dpkg -l,但是,一般来说,只需找到你想要的软件包并告诉 apt 安装它,如果你已经安装了它,那么 apt 会告诉你。另一个好提示是,如果您想知道哪个包拥有某个文件,请使用dpkg -S /path/to/thefile./configure应该告诉你,或者README文件。通常他们甚至会说出所需的确切包的名称。-lssl给 gcc。如果您不知道选项是什么-l,请查看 /lib/ (只需删除前面的“lib”和后面的“.so...”即可获得传递的“中间”海湾合作委员会)。| 归档时间: |
|
| 查看次数: |
17143 次 |
| 最近记录: |