关于现代 CMake 结构的说明

Clarification about modern CMake structure

我不是专家 C 或 C++ 程序员,但我必须为两个课程项目编写一个 C 和一个 C++ 应用程序。为了从右脚开始,我正在阅读关于 how to structure the code of a CMake project 的指南。

我想澄清一下include目录的含义和用法:

感谢您的任何见解。

如果您正在编写应用程序,则可以将内容放在任何您想要的地方。用户大多希望您有一个包含二进制可执行文件的 bin 子目录。哦,请支持 CMAKE_INSTALL_PREFIX:in-source 构建是邪恶的,就我而言。

如果您正在编写一个库,用户希望安装前缀位置中的子目录 includelib。对于漂亮的 unix-y 内容,如果您知道如何生成 troff,您可以包含 man

关于 include 目录。你可以把你的 mylib.h 文件直接放在那里,但是如果你的库有一个共同的名字,比如 format,这可能会导致名称冲突,所以现在很多包将它组织为 /home/mylibinstallation/include/mylibrary/mylib.h .然后你会 export MYLIBINC=/home/mylibinstallation/include 并且程序会`#include "mylibrary/mylib.h"。如果您有多个包含,那么额外的级别也很好。