【问题标题】:How can I learn to include and link to libraries?我如何学习包含和链接到库?
【发布时间】:2013-07-22 18:14:20
【问题描述】:

我正在尝试自学 C++ 编程。 C++ 是最简单的部分。一些耐心和良好的参考资料会有很长的路要走。包含和链接库是困难的部分。所提供的说明通常假设我没有一些知识,并且不知道如何在没有痛苦的缓慢试验和错误的情况下获得。

最新的具体例子是http://cpp-netlib.org/

我花了整个下午的时间试图让它工作,但我什至不知道它为什么不工作。

如何从头开始学习这项技能?

在学习如何做到这一点时遇到如此巨大的困难是否正常?

【问题讨论】:

  • 链接取决于编译器和操作系统。
  • @Nick,我会说 IDE(如果使用)比 OS 更多。
  • 是和否...这实际上取决于您使用的系统。 Linux(带有 make 文件)往往是最简单的(恕我直言),CMake 往往是最难的(至少在 Windows 上,在 linux 上它非常漂亮),而 IDE 介于两者之间。
  • 我在 Windows 上使用 CodeBlocks。这是否解释了为什么我觉得这项任务过于困难?
  • @SChepurin ' 在 Windows 上比在 Linux 上更容易' 我对此表示怀疑!我的感觉正好相反,但可能取决于您更频繁地使用什么。

标签: c++ compiler-construction linker libraries


【解决方案1】:

嗯,任何 C++ 编译器的原理几乎总是相同的(提到的选项标志非常标准,但对于特定的编译器可能会有所不同):

  1. 安装您想在系统中使用的库(这可能包括使用您的特定编译器工具链编译此库的步骤)。
  2. 使用-I 选项设置要用于此库的包含路径
  3. 在代码中使用库 API 的标头 (#include <libheader.h>)
  4. 使用-L选项设置要用于这个库的库路径,告诉链接器使用-l<extra>链接哪些库,其中extra应该引用一些名为lib<extra>.alib<extra>.lib的文件

注意事项:

  1. 第三方库可能取决于您还需要安装的其他库(使用与目标使用相同的工具链进行编译)
  2. 在使用 MS Visual Studio (Express) 工具链的 Windows 上,您需要注意选择与“线程模型”以及一般“调试”/“非调试”库版本兼容的正确库版本。

一个(适当且有用的)IDE 通常会让您在项目设置中选择工具链(MinGW GCC、MS VS 编译器、LLVM 等),并提供一些属性对话框来设置这些选项。
为您使用的工具链、第 3 方库、IDE 和操作系统设置所需的学习曲线略有不同,具体取决于您要使用的具体内容。

【讨论】:

  • 感谢您的解释。 -I 和 -L 选项究竟指的是什么?这是来自命令行编译器的东西吗?
  • @A.B.是的,这是指命令行选项。通常,您可以在 IDE 中为每个项目选项指定此项。我不知道如何处理代码块,因为我从未使用过它。但是你应该能够在你的项目构建选项中找到类似的东西。 注意:您的 IDE(代码块)只是使用下面的命令行编译器(工具链)来构建项目!
猜你喜欢
  • 1970-01-01
  • 2020-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-04
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多