相关疑难解决方法(0)

对于cmake"include"命令,文件和模块之间有什么区别?

我使用一些我不想构建的库作为每个使用它们的项目的一部分.一个非常容易理解的例子是LLVM,它有78个静态库.即使使用cmake代码在每个cmakefile中查找和导入这些代码也是过多的.

显而易见的解决方案似乎是使用"include"命令,并将相关的cmake脚本块分解为*.cmake文件,并设置CMAKE_MODULE_PATH环境变量.

除了它只是简单不起作用.Cmake找不到我在include命令中指定的文件.

在off-chance上,我甚至尝试用几种方式在环境变量中指定路径 - 一次使用反斜杠,一次使用正斜杠... - 每次我重新启动命令提示符并检查环境变量是否存在且正确.

在cmake手册中,它暗示"文件"与"模块"不同 - 只有模块才能获得自动添加 - 扩展和搜索路径处理.但没有解释差异是什么.我猜测缺少的扩展可能就足够了(与标准模块一样),但显然不是.

搜索手册中的"模块"并没有多大帮助,因为这个词似乎过载了.例如,模块也是使用LoadLibrary/dl_open加载的动态库.

任何人都可以解释在这个上下文中文件和模块之间的区别,以及我如何创建自己的模块,以便cmake include命令可以找到并使用它?

我在Windows上使用cmake 2.8.1.

编辑

我非常有信心这里的问题不是理解cmake应该如何工作.我认为我应该做的是写一些find_package可以使用的东西.

事实上,我仍然可以回答我自己的问题.

cmake

37
推荐指数
3
解决办法
4万
查看次数

标签 统计

cmake ×1