Мой проект использует version.h
для настройки версии приложения, многие исходные файлы включают этот version.h
, в настоящее время он определяет версию приложения, например:
#define VERSION 1
Каждый раз, когда я обновляюсь до новой версии, мне нужно изменить это VERSION
, и, поскольку он включен во все исходные файлы, весь проект перекомпилируется, что занимает очень много времени.
Итак, я хочу разделить его на .h и .cpp . Затем я просто изменяю .cpp при обновлении, и он перекомпилирует только один файл.
Вот что я попробовал:
test.cpp
#include <iostream>
using namespace std;
const static int VERSION;
// some other source code that uses the version
struct traits {
const static int ver = VERSION;
};
int main() {
cout << traits::ver << endl;
}
version.cpp
const int VERSION = 1;
Обратите внимание, что мне нужно использовать его как static . Но он не компилируется, ошибка:
ошибка C2734: «VERSION»: объект «const» должен быть инициализирован, если нет
'Экстерн'
ошибка C2131: выражение не было константой
примечание: сбой был вызван непостоянными аргументами или ссылкой на
непостоянный символ
примечание: см. Использование 'VERSION'
Как лучше определить код версии?
Среда: Visual Studio 2015, обновление 3