Я беру файл main.c и компилирую его с помощью gcc -std = c1x -c main.c в Mac OS X, и он отлично работает без ошибок. Затем я делаю то же самое в LinuxMint и на малине Pi, и в обоих случаях он дает мне ошибки о том, что "элемент инициализации не является постоянным".
Один пример проблемной строки с соответствующим кодом:
//STATIC GLOBAL CONSTANTS
const unsigned long long LATITUDE = (long) 3600000;
const unsigned long long LONGITUDE = (long) 1810000;
const unsigned long long MAX_COORDINATES_NUMBER = (LATITUDE-1) + LATITUDE*(LONGITUDE-1); //compiler error: initializer element is not constant
Это должно позволить мне сделать арифметику, не так ли? Я мог бы просто заменить это фактическими числами, и это сработает, но тогда это станет беспорядочным. И все равно отлично работает на моем Mac. Есть ли какой-нибудь вариант в GCC, который я должен указать на Linux (помимо -std = c1x, который вам также не нужен на Mac)?