Несколько дней назад я установил Visual Studio 2022, но меня ошеломило огромное количество доступных опций, а также онлайн-документация по адресу https://learn.microsoft.com/en-us/documentation/.
Я разрабатывал приложение на C, которое имеет один большой файл и относительно короткий заголовочный файл в Visual Studio 2019, и переместил код до версии 2022 года. Заголовочный файл содержит различные включения, определения, объявления глобальных переменных и т. д., а также объявления прототипов функций. Главный файл содержит основную функцию, за которой следуют функции, которые она вызывает. Однако основной файл становится слишком длинным для управления, и я бы предпочел иметь в этом файле только главную функцию, а вызываемые ею функции - в одном или нескольких отдельных файлах. Проблема в том, что я не знаю, как связать файлы вместе, чтобы создать исполняемый файл. Я могу сделать это с помощью командной строки в Linux, но не знаю, как настроить Visual Studio для связывания исходных файлов и компиляции их в один файл «.exe».
Вместо того, чтобы пробовать это с приложением, над которым я работаю, я создал очень простую тестовую программу, чтобы опробовать это.
Код в основном файле «main.c» просто:
Код: Выделить всё
#include
void func1();
void func2();
int main() {
printf("Output from main\n");
func1();
return 0;
}
Код во втором файле «functions.c» с функциями просто:
Код: Выделить всё
void func1() {
printf("func1 called from main\n");
func2();
}
void func2() {
printf("func2 called from func1\n");
}
Нужно ли мне использовать CMAKE для связывания файлов, и если да, то как это сделать? Если IDE можно каким-то образом настроить для связывания файлов в этом очень простом примере без использования CMAKE, как это сделать?
Если я могу связать файлы в этом простом тексте, то мое приложение можно реорганизовать, чтобы поместить функции в один или несколько отдельных файлов и сохранить основную функцию в отдельном файле. Просматривая онлайн-документацию, в том числе несколько видеороликов на YouTube, я не увидел, как это сделать.
Все это также относится и к коду на C++.
Заранее большое спасибо за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/712 ... tudio-2022
Мобильная версия