Różnica między CPPFLAGS i CXXFLAGS w GNU Make

Jaka jest różnica między CPPFLAGS a CXXFLAGS w GNU Make?

Author: mrflash818, 2009-01-30

4 answers

CPPFLAGS ma być dla FLAG dla C P re Processor; CXXFLAGS jest dla FLAG dla kompilatora C++.

Domyślne reguły w make (na moim komputerze, w każdym razie) przechodzą CPPFLAGS do prawie wszystkiego, CFLAGS jest przekazywana tylko podczas kompilacji i łączenia C, a CXXFLAGS jest przekazywana tylko podczas kompilacji i łączenia C++.

 180
Author: Kieron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-12 03:39:16

Domyślnie, CPPFLAGS będzie podane preprocesorowi C, podczas gdy CXXFLAGS będzie podane kompilatorowi C++.

GNU Make Manual jest dobrym źródłem do takich pytań (zobacz zmienne niejawne).

 29
Author: Christoph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-12 19:23:25

CPPFLAGS są dla preprocesora C, podczas gdy cxxflags są dla kompilatora C++.

Zobacz TUTAJ .

 15
Author: starblue,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-28 20:46:51

Domyślnie są ustawione na coś.

W praktyce trzeba wiedzieć, co robi każdy projekt. Praktycznie nikt nie używa tych domyślnych wbudowanych w make, a jeśli polegasz na, na przykład, CPPFLAGS oznaczające "flagi dla preprocesora C", przekonasz się, że projekt, na którym ci zależy, użył go jako "flagi dla kompilatora C++". A czy flaga CFLAGS jest przekazywana do linii kompilacji C++? Czasami. Nie zawsze. Etc, etc, etc.

 -2
Author: James Moore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-28 21:27:50