ViKo 1 7 июля, 2020 Опубликовано 7 июля, 2020 · Жалоба 1 минуту назад, Forger сказал: чтобы не гадать делайте все одинаковые с проектом Я-то как раз хотел в v6 скомпилировать, да на C++11. А они нехай к тому, чем пользуются, пришпилят. Может не склеиться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 7 июля, 2020 Опубликовано 7 июля, 2020 · Жалоба 5 minutes ago, ViKo said: Может не склеиться? Проверить самому - 5 минут с перекурами :) Знаю точно, что v5 и v6 несовместимы, хотя либы в составке keil как-то работают под обеими версиями (я про либы из middleware). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 7 июля, 2020 Опубликовано 7 июля, 2020 · Жалоба 1 минуту назад, Forger сказал: Проверить самому - 5 минут с перекурами :) Спросить - еще быстрее. Удивляюсь, когда посылают в Гугл за ответами. Здесь и есть форум вопросов и ответов. Специальный! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 7 июля, 2020 Опубликовано 7 июля, 2020 · Жалоба 4 minutes ago, ViKo said: Спросить - еще быстрее. Удивляюсь, когда посылают в Гугл за ответами. Ничего удивительного, если в гугле все это есть, на первой же странице. Кроме нюансов, но они возникают в процессе применения и также решаются через гугль. Не вижу смысл дергать сообщество по тому, что можно сделать самостоятельно ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 8 июля, 2020 Опубликовано 8 июля, 2020 · Жалоба При составлении библиотеки - каждая функция в отдельном файле С (С++). Если в одном исходнике описано несколько функций описано, то цепляться будет все равно весь объектный файл в проект, хотя нужна может быть только одна функция. Скорее всего и с кейлом так, но можно проверить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 8 июля, 2020 Опубликовано 8 июля, 2020 · Жалоба 13 minutes ago, mdmitry said: Скорее всего и с кейлом так, но можно проверить. В keil еще с античных времен можно было поставить одну единственную галочку, что позволяет избежать подобного геморроя. Работает в ОБОИХ компляторах v5 и разумеется в v6 Вот картинка, по названию опции очень хорошо понятно, что она делает: Это НУЖНО ДЕЛАТЬ не только библиотеках, но в самих проектах, очень сокращает объем прошивки, особенно в проектах, где используются огромные c/c++ файлы с кучей функций/методов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 8 июля, 2020 Опубликовано 8 июля, 2020 · Жалоба Прекрасно, что в кейле так просто, но с ним никогда не имел дел. У меня крепко в голове эта необходимость засела ещё с давних времён, когда работал с intel196. Разделение на файлы упрощает портируемость (если есть необходимость функция->файл). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 8 июля, 2020 Опубликовано 8 июля, 2020 · Жалоба 3 hours ago, mdmitry said: У меня крепко в голове эта необходимость засела ещё с давних времён, когда работал с intel196. Разделение на файлы упрощает портируемость (если есть необходимость функция->файл). Раньше передвигались исключительно на лошадях и при появлении паровозов особо суеверные люто их боялись ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 8 июля, 2020 Опубликовано 8 июля, 2020 · Жалоба 53 minutes ago, Forger said: Раньше передвигались исключительно на лошадях и при появлении паровозов особо суеверные люто их боялись ... Это к чему? Вы гарантируете, что все компиляторы-линкеры-библиотекари поддерживают режим разделения на секции одного объектного файла? Для gcc есть ключи при создании объектных файлов для разделения на секции, и не забыть ключи линкеру дать для исключения неиспользуемых секций. Про другие средства не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 8 июля, 2020 Опубликовано 8 июля, 2020 · Жалоба 7 часов назад, mdmitry сказал: При составлении библиотеки - каждая функция в отдельном файле С (С++). Для С++ это значит, что при написании библиотечного класса количество .срр файлов будет равно количеству методов в классе, исключая встраиваемые? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 8 июля, 2020 Опубликовано 8 июля, 2020 · Жалоба 1 hour ago, mdmitry said: Вы гарантируете, что все компиляторы-линкеры-библиотекари поддерживают режим разделения на секции одного объектного файла? Я гарантирую то, что не стану заставлять вас пересаживаться на "паровоз", смело катайтесь и дальше на конной тяге 1 hour ago, mdmitry said: Для gcc есть ключи при создании объектных файлов для разделения на секции, и не забыть ключи линкеру дать для исключения неиспользуемых секций. Про другие средства не знаю. В любой адекватной (не античной) среде эти ключи выставляются или по-умолчанию автоматом или соотв. "галочками". В допотопных же IDE или из под makefile это все придется выставлять ручками Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 8 июля, 2020 Опубликовано 8 июля, 2020 · Жалоба 2 hours ago, Forger said: Я гарантирую то, что не стану заставлять вас пересаживаться на "паровоз", смело катайтесь и дальше на конной тяге В любой адекватной (не античной) среде эти ключи выставляются или по-умолчанию автоматом или соотв. "галочками". В допотопных же IDE или из под makefile это все придется выставлять ручками Не думал, что для вас gcc (Debian 6.3.0-18+deb9u1) 6.3.0 и gcc-arm-none-eabi-9-2020-q2-update конная тяга Предпочитаю make из-за портируемости Quote Для С++ это значит, что при написании библиотечного класса количество .срр файлов будет равно количеству методов в классе, исключая встраиваемые? Какой смысл отделять то, что отдельно не используется. ТС, насколько я понимаю, предпочитает С, поэтому и изначально изамечание в этом ключе было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 8 июля, 2020 Опубликовано 8 июля, 2020 · Жалоба 1 hour ago, mdmitry said: Предпочитаю make из-за портируемости (С) "Каждый дрочит, как хочет" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 9 июля, 2020 Опубликовано 9 июля, 2020 · Жалоба 11 hours ago, mdmitry said: Разделение на файлы упрощает портируемость Гм... или усложняет. В среднем классе у меня 5 - 15 методов. В директории обычно находится от одного до 3 - 5 классов, схожих по назначению. Например, это классы для расчёта каких-либо физических величин. Итого, в наихудшем случае выходит 15 * 5 = 75 файлов с расширением *.cpp. А сколько подобных директорий в проекте? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 9 июля, 2020 Опубликовано 9 июля, 2020 · Жалоба Я предпочитаю C++, если после него получится библиотека, которую можно включить в проект на любом языке. Это возможно? Экономить на функциях мне в данном случае не обязательно. Их немного, использоваться будут в одинаковой степени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться