#c #visual-studio #cmake
Вопрос:
Я использую CMake для создания проектов на C . Тогда я хотел бы использовать Visual Studio в качестве своей среды разработки. Но проблема, с которой я сталкиваюсь, заключается в том, что я не могу правильно структурировать файлы. Вот в чем проблема:
Давайте предположим, что у меня на диске есть следующая файловая структура.
И вот мой CMakeLists.txt:
cmake_minimum_required(VERSION 3.20)
set(sourceDirectory src)
set(includeDirectory include)
set(targetName vulkan-tutorial)
set(targetVersion 1.0.0)
project(${targetName} VERSION ${targetVersion})
file(GLOB src
${sourceDirectory}/*.cpp
${sourceDirectory}/**/*.cpp
${sourceDirectory}/**/**/*.cpp
)
add_executable(${targetName} ${src})
target_include_directories(${targetName} PRIVATE ${includeDirectory})
Вот как выглядит этот проект в Visual Studio с фильтрами.
Или без использования VS-фильтров.
Я могу создавать новые файлы, но они не попадут туда, куда я хочу. Поведение, которого я хочу добиться, чрезвычайно простое: я хочу видеть корневой каталог моего проекта и его папки «src» и «include». Я хочу иметь возможность щелкнуть их правой кнопкой мыши и создавать новые папки и файлы. Затем я хочу, чтобы Visual Studio создала их внутри выбранной папки. Как это было бы в любом обычном файловом проводнике.
Одним из решений, которое я мог бы себе представить, является создание файлов проекта не внутри «папки сборки», а в корневом каталоге самого проекта, что, очевидно, является ужасным решением и приводит к загрязнению структуры проекта.
Вкратце — вот результат, который я хочу получить (теперь я могу достичь его, только создав проект в корне). Но все файлы сборки должны быть расположены в соответствующей папке «сборка» в корневой папке проекта.
Я также хотел бы добавить, что я пытался использовать различные функции для CMake, которые группируют мои файлы вместе, но в итоге я получил множество фильтров, отражающих структуру моего проекта на диске. Конечно, я все еще не мог динамически добавлять новые папки и файлы.
Я ценю любую помощь. Заранее спасибо.
Ответ №1:
Просто используйте эту Open Folder
опцию в visual studio.
Это откроет каталог и автоматически настроит проект с помощью CMake. Он будет отображать дерево независимо от структуры конфигурации CMake.
У Microsoft есть страница проекты CMake в Visual Studio, на которой объясняется, как правильно импортировать проекты CMake в visual studio
Комментарии:
1. Вау, большое спасибо! Именно то, что я искал!