gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 02:55:06 24 4
gpt4 key购买 nike

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 只是不期望这样一个简单的目录结构,那么什么样的目录结构会让它满意?

最佳答案

简而言之,find_path不是递归的,所以如果你想在 Include 子文件夹中找到一些东西,你有两个选择:
状态路径文件应该驻留(注意 E:/Include 而不是 E:/ ):

find_path(
GSLINCLUDE
NAMES "fred.h"
PATHS ../.. E:/Include
)
其他选项是使用 PATH_SUFFIXES修饰符:
find_path(
GSLINCLUDE
NAMES "fred.h"
PATHS ../.. E:/
PATH_SUFFIXES Include
)
最后,这里是关于 find_path的完整文档。

关于CMake find_path 在简单示例中没有找到路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53367123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com