реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> KEIL определение констант проекта
Tarbal
сообщение Nov 14 2015, 04:21
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



В gcc для того, чтобы во время компиляции определить DEBUG надо в командной строке написать -DDEBUG, а как подобное делается в Keil и IAR?
Go to the top of the page
 
+Quote Post
Палыч
сообщение Nov 14 2015, 06:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



В Keil константы препроцессора можно определить в опциях проекта, группы файлов или отдельного файла.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Nov 14 2015, 12:59
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(Палыч @ Nov 14 2015, 09:18) *
В Keil константы препроцессора можно определить в опциях проекта, группы файлов или отдельного файла.


Ага. Нашел. Спасибо.
Про группы файлов или отдельного файла даже не думал. Такое лучше наверное делать методами языка С. Потом замучаешься искать где и что определено.
Go to the top of the page
 
+Quote Post
scifi
сообщение Nov 14 2015, 14:57
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Tarbal @ Nov 14 2015, 15:59) *
Про группы файлов или отдельного файла даже не думал. Такое лучше наверное делать методами языка С. Потом замучаешься искать где и что определено.

Нет у языка Си методов определения макросов для группы файлов, если только через #include. Это ответственность системы сборки программы. И если программа собирается при помощи Makefile, тоже не всегда очевидно, где что определено.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Nov 16 2015, 05:54
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



В принципе, вы можете создать несколько различных вариантов проекта (по умолчанию Release/ Debug).
В каждой ветке вы можете настроить options, где добавить необходимые макрообъявления в препроцессоре компилятора и/или ассемблера.
Я, к примеру, в release ввожу макрообъявление NDEBUG и далее использую.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 16 2015, 07:55
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Я тоже использую таргеты Debug, Release, но по умолчанию они не создаются. Подсмотрел в Visual Studio.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Nov 16 2015, 10:57
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(scifi @ Nov 14 2015, 17:57) *
Нет у языка Си методов определения макросов для группы файлов, если только через #include. Это ответственность системы сборки программы. И если программа собирается при помощи Makefile, тоже не всегда очевидно, где что определено.


Разумеется я #include и имел ввиду.

Они легко ищутся множестом способов и вопросов не возникает. Мне видится стремным определять в свойствах проекта константы препроцессора отдельным файлам. Только если надо чтобы враги не разобрались.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Nov 17 2015, 05:58
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(Tarbal @ Nov 16 2015, 13:57) *
Мне видится стремным определять в свойствах проекта константы препроцессора отдельным файлам. Только если надо чтобы враги не разобрались.


Тут мы плавно подходим к другому вопросу - а нужны ли вообще файлы проекта и не удобнее ли make-подобный способ сборки biggrin.gif
Go to the top of the page
 
+Quote Post
scifi
сообщение Nov 17 2015, 06:50
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Непомнящий Евгений @ Nov 17 2015, 08:58) *
Тут мы плавно подходим к другому вопросу - а нужны ли вообще файлы проекта и не удобнее ли make-подобный способ сборки biggrin.gif

IDE - это удобно. В то же время отупляет. Стоит появиться нестандартной задаче, и сразу вопросы а-ля блондинко "а на какой крыжик нужно нажать?" В конце концов, когда-то слово "программист" звучало гордо.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Nov 17 2015, 07:24
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(scifi @ Nov 17 2015, 09:50) *
IDE - это удобно. В то же время отупляет. Стоит появиться нестандартной задаче, и сразу вопросы а-ля блондинко "а на какой крыжик нужно нажать?" В конце концов, когда-то слово "программист" звучало гордо.


IDE и make-подобная сборка ортогональны на самом деле. Многие IDE умеют работать с make/cmake файлами в качестве проектных. Или скажем взять эклипс - я прикрутил к нему scons, сборка идет по команде из эклипса, инфа для парсера также тянется из scons-а.

Сборка в виде установки галочек в свойствах проекта - удобно, да. Но к примеру положить расставить галочки автоматом по какому-то алгоритму или еще что-нить нестандартное - уже проблема.
Go to the top of the page
 
+Quote Post
pitt
сообщение Nov 17 2015, 19:23
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(scifi @ Nov 17 2015, 01:50) *
IDE - это удобно. В то же время отупляет. Стоит появиться нестандартной задаче, и сразу вопросы а-ля блондинко "а на какой крыжик нужно нажать?" В конце концов, когда-то слово "программист" звучало гордо.

Writing and especially debugging(yes, indeed, debugging) complex makefile(s) isn't a trivial task. It does take time. Sometimes a lot of time. It also not always reusable for the next project. IDE works fine for a huge majority of projects. That was one of the goals of creating IDE at late 80-s of the last century. So at the end of the day the question becomes what is the major goal: to work on the project itself or on the makefile(s) for it. The choice is yours.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01439 секунд с 7
ELECTRONIX ©2004-2016