![](/img/trans.png)
[英]How to include external library (boost) into CLion C++ project with CMake?
[英]How to include external library in C++ from GitHub using CLion and CMake on Windows?
我的任务是创建一个 C++ 程序,我们鼓励使用的库之一是 GLM,可在此处的 GitHub 链接上找到: https://github.com/g-truc/glm 。 我一直在努力弄清楚如何将这个库包含在我的程序中,但我无法弄清楚这个过程。 我是 C++ 和 CMake 的新手,我在查找时发现的所有内容都是为其他操作系统或平台量身定制的(我使用的是 Windows 10),或者我还不明白。 如果能帮助我阐明我需要采取的步骤,我将不胜感激。
现在,我只有一个简单的 Hello World 主文件和一个由 CLion 自动生成的 CMakeLists.txt 文件。 我的目标是能够编写类似“#include <mat4x4.hpp>”的内容,并访问库中的方法。 以下是我一直遇到的一些问题:
正如你所看到的,作为一个新手,我还不能真正确定总体流程是什么样的。 这是我第一次尝试的样子:(在这里,我将库下载为 a.zip,将其解压缩并将整个内容复制到 lib 文件夹中)
似乎 CMake 能够找到 GLM,因为它打印了一个版本号。 但是在编写“#include”行时它仍然找不到库,所以我一定是在某处遗漏了一步。 非常感谢任何帮助。 如果您需要我提供更多信息,请尽管询问!
在朋友的帮助下,我设法解决了它,以供后人参考。 这是对我有用的设置。
我提取了下载的 .zip,并将整个生成的文件夹放在我的项目结构中。 为此,我创建了一个“lib”文件夹(尽管我怀疑文件夹名称或结构并不像我最初想的那么重要)。 这是我的工作项目结构:
如您所见,我也不再有单独的“src”文件夹,但我确信如果需要我可以添加一个。 这里的重要部分是每个文件夹级别都有自己的 CMakeLists.txt。 简而言之,项目根目录中的CMakeLists链接“lib”文件夹,lib文件夹中的CMakeLists链接“glm”文件夹。 glm 文件夹中的那个在我下载的库中,它已经处理了后续文件夹和文件的所有链接。 这是项目根目录中的 CMakeLists 的样子:
第 7 行链接 lib 文件夹。 第 8 行从我创建的源文件(main.cpp,在第 5 行设置)创建了一个可执行文件。 第 9 行链接 glm 库和我的可执行文件。 这是 lib 文件夹中的 CMakeLists 的样子:
那里不多,但链接了 glm 子目录,然后它已经有一个名为 glm 的库,我可以在根 CMakeLists 中使用它。
完成所有设置后,我现在可以在我的 main.cpp 中成功使用“#include”命令,它会找到库:
希望我添加的任何其他库都可以遵循相同的过程。 如果其他人遇到同样的障碍,我希望这有助于澄清事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.