Используйте VS Code для кроссплатформенного масштабируемого проекта C ++ - PullRequest
0 голосов
/ 28 мая 2020

В этом руководстве, предоставленном командой VS Code, объясняется, как настроить C ++ в VS Code с MinGW (https://code.visualstudio.com/docs/cpp/config-mingw), однако, похоже, он предназначен только для небольших проектов, так как он настроен для восстановления всех файлы каждый раз и не настроены для упрощения настройки проекта (глобальные определения, добавление библиотек ссылок и т. д. c.) (или я что-то упустил?).

Я собираюсь использовать CMake в качестве моего инструмента сборки внутри VS Code, однако меня действительно не устраивает идея обновления файла CMakeLists.txt, чтобы изменить конфигурации моего проекта, например, каждый раз, когда я добавляю файлы в свой проект или связываю новую библиотеку, как у меня вырос с использованием IDE, которые выполняют этот процесс за меня, что мне кажется намного проще, поскольку это позволяет мне полностью сосредоточиться на написании кода.

Мой вопрос: существует ли известный метод настройки VS Code, который позволит мне использовать такой инструмент, как CMake, не возиться с ним слишком часто?

Этот учебник кажется хорошей отправной точкой для настройки CMa ke, но для его метода требуются знания CMake https://pspdfkit.com/blog/2019/visual-studio-code-for-cpp/

В идеале я бы хотел, чтобы установка обслуживала как мелкомасштабные, так и крупномасштабные проекты, оба из которых должны допускать перекрестные здание платформы.

Спасибо

1 Ответ

1 голос
/ 28 мая 2020

Поскольку Visual Studio Code не является тяжеловесной IDE, вам нужно будет приложить некоторые усилия, чтобы заставить его работать так, как вы хотите, либо: Напишите генератор CMake InputFile, например:

list(APPEND EXECUTABLE_LIST executable_1 executable_2)
list(APPEND LIBRARY_LIST library_2 library_2 library_3)

foreach(lib IN LISTS LIBRARY_LIST)
     add_library(${lib} STATIC ${lib}.cpp)
endforeach()

foreach(exe IN LISTS EXECUTABLE_LIST)
    add_executable(${exe} ${exe}.cpp)
    target_include_directories(${exe} PUBLIC ${CMAKE_CURRENT_LIST_DIR})
    target_link_libraries(${exe} ${LIBRARY_LIST})
endforeach()

или вы также можете использовать расширение Visual Studio Code CMake Tool

Конечно, вы не могли ожидать такой высокой функциональности, как Visual Studio в VS Код , поскольку они служат разным целям (узкоспециализированная, глубокая пара систем, но медленная и большая против маленькая, быстрая, с широкими возможностями настройки).

...