首页 > 解决方案 > CMake 找不到源文件

问题描述

我正在尝试使用 Visual Studio 配置 PCL,但在使用 cmake 时遇到错误。我将 pcl 1.8 与 VS 2013 和 cmake 3.14 一起使用。我可以成功完成配置步骤,但是当我开始生成时,我确实面临 add_executable 错误。

这是我的 cmakelists

cmake_minimum_required(VERSION 2.8 FATAL_ERROR) 
project(cloud_viewer)

find_package(PCL 1.2 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS}) 
link_directories(${PCL_LIBRARY_DIRS}) 
add_definitions(${PCL_DEFINITIONS})

add_executable (cloud_viewer cloud_viewer.cpp) 
target_link_libraries (cloud_viewer ${PCL_LIBRARIES})

这是我得到的错误:

CMakeLists.txt 处的 CMake 错误:11(add_executable):找不到源文件:cloud_viewer.cpp 已尝试扩展名 .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx CMakeLists.txt:11 处的 CMake 错误:11(add_executable):没有给目标提供源:cloud_viewer


显示 CMakelists.txt 和 cloud_viewer 位于同一文件夹中的图像

[在此处输入图像描述

谁能帮我解决它。提前致谢。

标签: c++cmake

解决方案


查看您的屏幕截图,您应该将文件命名为cloud_viewer.cpp,而不是cloud_viewer.ccp. 小心扩展:cppvsccp


附带说明一下,尝试使用基于 cmake 标记的系统而不是基于目录:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR) 
project(cloud_viewer)

find_package(PCL 1.2 REQUIRED)

add_executable(cloud_viewer cloud_viewer.cpp) 
target_link_libraries(cloud_viewer PUBLIC ${PCL_LIBRARIES})
target_compile_definitions(cloud_viewer PUBLIC ${PCL_DEFINITIONS})
target_include_directories(cloud_viewer PUBLIC ${PCL_INCLUDE_DIRS})

推荐阅读