Lyt 0 16 января, 2014 Опубликовано 16 января, 2014 · Жалоба Два вопроса: 1.Возможно ли подключить .с файл как библиотеку в IAR? 2.При простом подключении .с файла - использующиеся в нем макроопределения можно определить вне его, а в main.c ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OlegH 0 16 января, 2014 Опубликовано 16 января, 2014 · Жалоба 1) Что значит как библиотеку ? можно просто подключить с-файл к проекту. можно скомпилировать его как библиотеку (сделав соответствующий проект) и подключать библиотеку потом к другим проектам в скомпилированном виде. В обоих случаях для с-файла правильно сделать соответствующий h-файл (заголовок), в котором описать внешние интерфейсы модуля (файла или библиотеки). 2) Что такое "простое подключение" ? добавление к проекту или #include ? в обоих случаях можно но не нужно. при добавлении к проекту нужно сделать h-файл и его потом #include и туда и сюда (В сам файл и в main.c). если просто #include "blabla.c" то можно конечно вне файла определить хоть что угодно (#include - это по сути простая подстановка текста, обрабатывается на этапе препроцессирования, до начала какой-либо компиляции). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lyt 0 16 января, 2014 Опубликовано 16 января, 2014 · Жалоба "как библиотеку" - при компиляции основного проекта будут скомпилированы только используемые функции в этом файле Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OlegH 0 16 января, 2014 Опубликовано 16 января, 2014 · Жалоба Ну насчет этого в IAR можно не беспокоиться - линкер оптимизирующий, он выкинет все неиспользуемое на этапе компоновки независимо от структуры исходных текстов. Компилироваться конечно же будет все. В прошивку попадет только то, что используется. Вы сами можете в этом убедиться по MAP-файлу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться