Перейти к содержанию
    

#include в scatter-файле

Добрый день

В скаттере используются константы, определённые в .h файле

В самом хидере есть условия определения, зависящие от Target. В частности, в цели Release определяется некая TARGET_RELEASE

Так вот в самом проекте всё в порядке, определение находится, но в скаттер это не передаётся - по сути подключаемый хидер как бы "сферический конь", сам по себе, поэтому определения получаются неверными

Как заставить скаттер видеть определения из Options -> C/C++ -> Define ?

По сути, определяя что-то в свойствах проекта, просто добавляется к строке компилятора -D<define>

Но вот как это сделать в скаттере с его #! armcc -E  ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, toweroff said:

Как заставить скаттер видеть определения из Options -> C/C++ -> Define ?

Я делаю так: под каждую сборку (Debug, Release, Production и т.п.) создается СВОЙ scatter файл, он лежит в своем отдельном каталоге (совпадает по названию с о сборкой).

Т.е. для каждой такой сборки свой каталог со своими промежуточными output файлами, так нет путаницы с другими сборками.

Если вам такой вариант с каталогами не нравится, то делайте scatter файлы с уникальными именами и кладите их в общую кучу.

 

В свойствах проекта нужно убрать галку (см. рис), тогда появиться возможность указать путь к самописному scatter файлу. Так нужно настроить для каждого варианта сборки.

Кнопочка "EDIT" позволяет прямо в Keil открыть этот скаттер файл и оттуда править.

 

 

Безымянный.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

48 минут назад, Forger сказал:

Я делаю так: под каждую сборку (Debug, Release, Production и т.п.) создается СВОЙ scatter файл, он лежит в своем отдельном каталоге (совпадает по названию с о сборкой).

Это понятно, тоже так делал.

В общем можно для конкретной цели в Linker Misc добавить что-то типа

--predefine="-DTARGET_RELEASE"

Тогда в хидере, который подключает скаттер, будет объявлена TARGET_RELEASE и всё начинает видеться и работать как надо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...