0

所以我最近厌倦了 Windows 并安装了 Linux Mint。我正在尝试在 Code::Blocks 中构建一个项目。我已经安装了 Code::Blocks 但我需要 glew(以及其他一些库)。我在软件管理器中找到并安装了它。我已经设法找到并包含头文件。但我觉得下一步应该相对简单,并且在整个互联网上都是,但是(可能是由于缺乏适当的术语)我一直无法找到答案。

我是否需要在我的系统上找到文件并手动链接到每个库?这就是我在 Windows 上所做的,但我只是下载了二进制文件并知道它们在哪里。我从软件管理器中找到了一个库并手动链接到它,但感觉就像我做错了。由于它是在系统上“安装”的,是否有一些快速链接的方法?

4

3 回答 3

3

您应该为链接器“-l”和“-L”使用两个标志。您可以在项目属性中的某处设置这些标志。

第一个'-l'告诉链接器链接到特定的库。例如glew,可能在/usr/lib 中有一个名为libglew.so 的文件,当你用'-lglew' 标志链接你的程序时,它会将它链接到glew 库。链接器在几个标准位置寻找库:/usr/lib、/usr/local/lib 和一些额外的。如果您的库位于非标准位置,请使用“-L”标志指向这些目录。

许多 linux 发行版提供两种带有库的包,普通的只带有运行时的包,以及带有头文件和库的开发版本的开发包(通常以 dev 或 devel 为前缀或后缀)。

于 2013-02-22T16:15:10.647 回答
1

使用构建系统,卢克!在 *nix 世界中开发/构建软件的典型方法是 3 个步骤:

  • 配置阶段——在构建之前,你必须意识到你将在什么环境中构建你的软件......是否安装了所需的一切......如果在编译阶段(编译几个小时后)那就不好了您(或构建您的软件的用户)遇到错误:无法#include the 'xxx.h'。最流行的构建系统是:cmake,我最喜欢autotools之后。你也可以尝试scons或者疯狂(b)果酱......
  • 编译阶段——通常只是make所有
  • 安装阶段——将刚刚构建的软件部署到系统中。或其他方式:为目标发行版(.deb/.rpm/&etc)构建包

在配置阶段使用测试脚本(不用担心有很多用于各种用例),您可以找到所有必需的头文件/库/程序/编译器选项/编译包所需的任何内容......是的:不要在您的 Makefile 中使用硬编码路径(或您对make二进制文件使用的任何内容)

于 2013-02-22T16:04:37.083 回答
0

这个问题的答案真的取决于你想要达到的目标。如果您只想自己构建应用程序,那么您只需在 makefile 或代码编辑器设置中写入库路径即可。您甚至可能不必这样做,就像您的 linux 分发包管理器安装的库一样,标头通常位于 /usr/include 和库到 /usr/lib 或 /urs/lib64 等。这些位置是标准的,您不需要明确指定它们。无论如何,您需要指定要链接到的库。如果您想创建可以由其他人构建的应用程序,或者由您在许多不同的配置/环境中使用cmake之类的东西构建将非常有帮助。

于 2013-02-22T16:23:43.167 回答