demiurg_spb 0 16 ноября, 2012 Опубликовано 16 ноября, 2012 · Жалоба не совсем Вам уже про LTO советовали, а я повторюсь, что и у Кейла есть галочка типа "link-time code generation" - это фактически аналог LTO от gcc. В таком режиме все функции рассматриваются компилятором как static... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 16 ноября, 2012 Опубликовано 16 ноября, 2012 · Жалоба не совсем Вам уже про LTO советовали, а я повторюсь, что и у Кейла есть галочка типа "link-time code generation" - это фактически аналог LTO от gcc. В таком режиме все функции рассматриваются компилятором как static... Не галочка - опция. --ltcg This option instructs the compiler to create objects in an intermediate format so that Link-Time Code Generation (LTCG) optimizations can be performed. The optimizations applied include cross-module inlining to improve performance, and sharing of base addresses to reduce code size. Note This option might significantly increase link time and memory requirements. For large applications it is recommended that you do the code generation in partial link steps with a subset of the objects. The LTCG feature is deprecated. As an alternative ARM recommends you use the --multifile option. Example The following example shows how to use the --ltcg option. armcc -c --ltcg file1.c armcc -c --ltcg file2.c armlink --ltcg file1.o file2.o -o prog.axf Из галочек есть Use Cross-module optimization Понял, нужно читать помощь по Кейлу! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 16 ноября, 2012 Опубликовано 16 ноября, 2012 · Жалоба Это заменяет ? Нет, это просто защита от повторного включения внутри единицы компиляции, коей является c/cpp файл. аналог #pragma once А речь идет о включении в разные модули, которые скомпилируются независимо и без вопросов, а в результате в разных объектных файлах окажутся одинаковые имена объектов, и уже линкер начнет вопить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 16 ноября, 2012 Опубликовано 16 ноября, 2012 · Жалоба Нет, это просто защита от повторного включения внутри единицы компиляции, коей является c/cpp файл. аналог #pragma once А речь идет о включении в разные модули, которые скомпилируются независимо и без вопросов, а в результате в разных объектных файлах окажутся одинаковые имена объектов, и уже линкер начнет вопить. То, что я показал, позволяет мне в одном общем file.h собрать заголовочные файлы для всех составляющих проекта, и потом подключать только его во все files.c. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться