Jump to content

    

#include в scatter-файле

Добрый день

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
1 hour ago, toweroff said:

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

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

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

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

 

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

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

 

 

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

Share this post


Link to post
Share on other sites
48 минут назад, Forger сказал:

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

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

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

--predefine="-DTARGET_RELEASE"

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now