Win7 SP1 32 бит.C :: B 16.01.
Я хочу обновлять номер версии при каждой компиляции.Я делаю это с помощью шага предварительной сборки, который запускает пользовательскую прогу, которая изменяет #define в файле с именем «Version.h».Version.h НЕ включен ни в один из других исходных файлов C.
У меня есть один исходный файл с именем Version.c, который включает Version.h.У него есть одна функция, которая strcpy определяет область, выделенную одной функцией в Subrouthes.c.
Вот мои настройки:
Version.h:
#define NACU_VERSION "v0.2.480"
Это обновляется с шагом предварительной сборки.
Затем Version.c:
#include <string.h>
#include "Version.h"
void Version(char *version) {
strcpy(version, NACU_VERSION);
}
Вот Subroutines.h:
#ifndef _SUBROUTINES_H
#define _SUBROUTINES_H
#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
void Usage();
void BlahBlahBlah(void);
void ShowScreenHeader(void);
#endif
Обратите внимание, что нетссылка на Version.h
Теперь есть волшебная функция в Subroutines.c, которая ссылается на Version ()
#include <windows.h>
#include <stdio.h>
#include "Subroutines.h"
void ShowScreenHeader(void) {
char a_version[50]; // Make some room
extern void Version(char *version); // let this func know about the other
Version(a_version); // call the func that copies the text
system("cls");
printf("Hello from Mark Utility %s (c) 2018, 2019.\n", a_version);
printf("\n");
}
Обратите внимание, что единственное соединение - это объявление в функции внешнего.
Единственная реальная ссылка на Verion.c - это то, что я включил ее в список источников проекта.
Тем не менее, весь проект (около 7 файлов C) компилируется каждый раз.
Как я могу сделать так, чтобы каждый раз компилировалась только Version.c, а не другие?
На вкладке «Настройки» -> «Компилятор» -> «Параметры сборки» я обнаружил нечто, называемое ...
«Пропустите проверку зависимостей, чтобы вычислить, какие файлы должны быть скомпилированы»
, но я уверен, что это будетбомба замедленного действия, которая однажды удалит мое лицо.
Спасибо за любую помощь в этом вопросе.
Марк.