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

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

чтобы не гадать делайте все одинаковые с проектом

Я-то как раз хотел в v6 скомпилировать, да на C++11. А они нехай к тому, чем пользуются, пришпилят. Может не склеиться?

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


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

5 minutes ago, ViKo said:

 Может не склеиться?

Проверить самому - 5 минут с перекурами :)

 

Знаю точно, что v5 и v6 несовместимы, хотя либы в составке keil как-то работают под обеими версиями (я про либы из middleware).

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


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

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

Проверить самому - 5 минут с перекурами :)

Спросить - еще быстрее.
Удивляюсь, когда посылают в Гугл за ответами. Здесь и есть форум вопросов и ответов. Специальный! :hi:

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


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

4 minutes ago, ViKo said:

Спросить - еще быстрее.
Удивляюсь, когда посылают в Гугл за ответами.

Ничего удивительного, если в гугле все это есть, на первой же странице. Кроме нюансов, но они возникают в процессе применения и также решаются через гугль.

Не вижу смысл дергать сообщество по тому, что можно сделать самостоятельно ;)

 

 

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


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

При составлении библиотеки - каждая функция в отдельном файле С (С++).  Если в одном исходнике описано несколько функций описано, то цепляться будет все равно весь объектный файл в проект, хотя нужна может быть только одна функция. Скорее всего и с кейлом так, но можно проверить.

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


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

13 minutes ago, mdmitry said:

Скорее всего и с кейлом так, но можно проверить.

 

В keil еще с античных времен можно было поставить одну единственную галочку, что позволяет избежать подобного геморроя. Работает в ОБОИХ компляторах v5 и разумеется в v6

Вот картинка, по названию опции очень хорошо понятно, что она делает:

 

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

 

Это НУЖНО ДЕЛАТЬ не только библиотеках, но в самих проектах, очень сокращает объем прошивки,

особенно в проектах, где используются огромные c/c++ файлы с кучей функций/методов

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


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

Прекрасно, что в кейле так просто, но с ним никогда не имел дел. У меня крепко в голове эта необходимость засела ещё с давних времён, когда работал с intel196. Разделение на файлы упрощает портируемость (если есть необходимость функция->файл).

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


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

3 hours ago, mdmitry said:

У меня крепко в голове эта необходимость засела ещё с давних времён, когда работал с intel196. Разделение на файлы упрощает портируемость (если есть необходимость функция->файл).

Раньше передвигались исключительно на лошадях и при появлении паровозов особо суеверные люто их боялись ...

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


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

53 minutes ago, Forger said:

Раньше передвигались исключительно на лошадях и при появлении паровозов особо суеверные люто их боялись ...

Это к чему?

Вы гарантируете, что все компиляторы-линкеры-библиотекари поддерживают режим разделения на секции одного объектного файла?

Для gcc есть ключи при создании объектных файлов для разделения на секции, и не забыть ключи линкеру дать для исключения неиспользуемых секций. Про другие средства не знаю.

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


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

7 часов назад, mdmitry сказал:

При составлении библиотеки - каждая функция в отдельном файле С (С++).

Для С++ это значит, что при написании библиотечного класса количество .срр файлов будет равно количеству методов в классе, исключая встраиваемые?

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


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

1 hour ago, mdmitry said:

Вы гарантируете, что все компиляторы-линкеры-библиотекари поддерживают режим разделения на секции одного объектного файла?

Я гарантирую то, что не стану заставлять вас пересаживаться на "паровоз", смело катайтесь и дальше на конной тяге :sarcastic:

 

1 hour ago, mdmitry said:

Для gcc есть ключи при создании объектных файлов для разделения на секции, и не забыть ключи линкеру дать для исключения неиспользуемых секций. Про другие средства не знаю.

В любой адекватной (не античной) среде эти ключи выставляются или по-умолчанию автоматом или соотв. "галочками". В допотопных же IDE или из под makefile это все придется выставлять ручками :pardon:

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


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

2 hours ago, Forger said:

Я гарантирую то, что не стану заставлять вас пересаживаться на "паровоз", смело катайтесь и дальше на конной тяге :sarcastic:

В любой адекватной (не античной) среде эти ключи выставляются или по-умолчанию автоматом или соотв. "галочками". В допотопных же IDE или из под makefile это все придется выставлять ручками :pardon:

Не думал, что для вас gcc (Debian 6.3.0-18+deb9u1) 6.3.0 и gcc-arm-none-eabi-9-2020-q2-update конная тяга :pardon:

Предпочитаю make из-за портируемости :yes:

Quote

Для С++ это значит, что при написании библиотечного класса количество .срр файлов будет равно количеству методов в классе, исключая встраиваемые?

Какой смысл отделять то, что отдельно не используется. ТС, насколько я понимаю, предпочитает С, поэтому и изначально изамечание в этом ключе было.

 

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


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

11 hours ago, mdmitry said:

Разделение на файлы упрощает портируемость

Гм... или усложняет. В среднем классе у меня 5 - 15 методов. В директории обычно находится от одного до 3 - 5 классов, схожих по назначению. Например, это классы для расчёта каких-либо физических величин. Итого, в наихудшем случае выходит 15 * 5 = 75 файлов с расширением *.cpp. А сколько подобных директорий в проекте?

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


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

Я предпочитаю C++, если после него получится библиотека, которую можно включить в проект на любом языке. Это возможно? 

Экономить на функциях мне в данном случае не обязательно. Их немного, использоваться будут в одинаковой степени. 

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


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

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

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

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

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

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

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

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

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

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