CMake find_path在简单示例中未找到路径

时间:2018-11-19 01:15:12

标签: cmake

Find_path在任何情况下都不适合我,因此我构建了我认为是最简单的测试用例。

我的源代码目录结构包含

E:/Include/fred.h
E:/Src/fizzbuzz/CMakeLists.txt
E:/Src/fizzbuzz/fizzbuzz.cpp

CMakeLists.txt是:

cmake_minimum_required(VERSION 3.12)
project (fizzbuzz)
find_path(
    GSLINCLUDE
    NAMES "fred.h"
    PATHS ../..   E:/
)
message(STATUS "GSLINCLUDE => ${GSLINCLUDE}")
add_executable(fizzbuzz fizzbuzz.cpp stdafx.h)

这给了我结果:

-- GSLINCLUDE => GSLINCLUDE-NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: E:/src/fizzbuzz

想必我在每种情况下都做着简单的事情,显然是错误的,但是在这个简单的示例中,使用这种极其简单的目录结构,这能做什么呢?

如果CMake不希望这样简单的目录结构,那么哪种目录结构会让它高兴呢?

1 个答案:

答案 0 :(得分:0)

简而言之,{不是递归的,因此,如果您希望在 Include 子文件夹中找到某些内容,则有2个选项:

状态路径文件应驻留(请注意find_path,而不是E:/Include):

E:/

另一种选择是使用 find_path( GSLINCLUDE NAMES "fred.h" PATHS ../.. E:/Include ) 修饰符:

PATH_SUFFIXES

最后,这是有关find_path

的完整文档