Разница между CPPFLAGS и CXXFLAGS в GNU Make

Начиная с Postgres 10, также поддерживаются столбцы идентификации, определенные стандартом SQL:

create table foo 
(
  id integer generated always as identity
);

создает столбец идентификатора, который нельзя переопределить, если явно не задано. Следующая вставка не будет работать с столбцом, определенным как generated always:

insert into foo (id) 
values (1);

. Однако это может быть отменено:

insert into foo (id) overriding system value 
values (1);

При использовании опции generated by default это по существу такое же поведение, как и существующая реализация serial:

create table foo 
(
  id integer generated by default as identity
);

Когда значение предоставляется вручную, базовую последовательность нужно также отрегулировать вручную - так же, как и в столбце serial.


Столбец идентификации по умолчанию не является первичным ключом (подобно столбцу serial). Если это должно быть одно, ограничение первичного ключа должно быть определено вручную.

128
задан mrflash818 15 August 2016 в 02:36
поделиться

3 ответа

CPPFLAGS, как предполагается, для флагов для ре C P Processor; CXXFLAGS для флагов для компилятора C++.

правила по умолчанию в делают (на моей машине, во всяком случае) передачу CPPFLAGS к примерно, все, CFLAGS только передается, когда компиляция и соединение C, и CXXFLAGS только передаются при компиляции и соединении C++.

197
ответ дан Ergwun 15 August 2016 в 02:36
поделиться

По умолчанию, CPPFLAGS будет дан препроцессору C, в то время как CXXFLAGS будет дан компилятору C++.

GNU Делает Руководство , хороший ресурс для вопросов как это (см. Неявные Переменные ).

32
ответ дан Matthew 15 August 2016 в 02:36
поделиться

CPPFLAGS для препроцессора C, в то время как CXXFLAGS для компилятора C++.

См. здесь .

18
ответ дан starblue 15 August 2016 в 02:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: