CMake无法找到头文件求助:推箱子求解器项目编译失败
解决推箱子求解器编译头文件找不到的问题
问题原因
你在CMake中通过include_directories(include/)已经将include/目录加入编译器的头文件搜索路径,但代码里写的#include "include/search_methods.hpp",会让编译器在include/目录下再去寻找include/search_methods.hpp,路径重复导致找不到目标文件。
两种解决方案
方案1:修改代码中的#include语句
把所有类似#include "include/xxx.hpp"的引用,改成直接使用头文件名,比如:
#include "search_methods.hpp"
编译器会自动在你配置的include/目录下查找对应的头文件。
方案2:调整CMakeLists.txt的头文件路径配置
如果不想修改代码,将include_directories的参数改为项目根目录(.):
project(Sokoban) cmake_minimum_required(VERSION 3.16.3) include_directories(.) add_executable(main src/main.cpp src/coord.cpp src/map.cpp src/node_data.cpp src/node.cpp src/search_methods.cpp)
这样编译器会从项目根目录开始搜索,include/search_methods.hpp就能匹配到实际的文件路径。
补充说明
如果你的实际文件夹结构不是根目录下直接包含include/和src/,可以补充具体的文件夹层级信息,不过根据现有信息,上述两种方案足以解决问题。
内容的提问来源于stack exchange,提问作者pdaranda661
相关产品推荐
相关产品推荐

