Я пытаюсь скомпилировать проект, как показано ниже.
myproject
|CMakeLists.txt
|-src
| |main.cpp
| |subSrc1
| | |*.cpp
| | |*.h
| |subSrc2
| | |*.cpp
| | |*.hpp
Я хочу скомпилировать проект со всеми *.cpp и *.h. поэтому я сделал CMakeLists.txt, обратившись к последнему комментарию URL-адреса ниже. CMake с включенными и исходными путями — базовая настройка
> cmake_minimum_required (VERSION 3.8 FATAL_ERROR)
> project ("myproject")
> include_directories ("${PROJECT_SOURCE_DIR}")
> include_directories (
> ${PROJECT_SOURCE_DIR}/src
> ${PROJECT_SOURCE_DIR}/src/exec/
> ${PROJECT_SOURCE_DIR}/src/host/
> )
>
> file(GLOB all_SRCS
> "${PROJECT_SOURCE_DIR}/*.cpp"
> "${PROJECT_SOURCE_DIR}/src/*.cpp"
> "${PROJECT_SOURCE_DIR}/src/exec/*.cpp"
> "${PROJECT_SOURCE_DIR}/src/exec/*.h"
> "${PROJECT_SOURCE_DIR}/src/host/*.cpp"
> )
>
> #add_executable (myproject "myproject/src/main.cpp")
> add_executable (myproject ${all_SRCS})
но ошибка говорит, что НЕТ ИСТОЧНИКОВ, ДАННЫХ ДЛЯ ЦЕЛИ. Я думаю, что add_executable() нуждается в main.cpp, но если я это сделаю, у меня не будет возможности указать CMakelist расположение других источников (файлы .cpp и .h). Могу я получить совет?
all_SRCS
пуста. Поскольку эта переменная получает свое содержимое изfile(GLOB)
, это означает, что ваши выражения подстановки ничего не возвращают. Пожалуйста, перепроверьте, действительно ли у вас есть файлы в каталогах, которые вы используете в регулярных выражениях. - person Tsyvarev   schedule 10.03.2021