Компиляция библиотек. Копи пастим....
- Войдите на сайт для отправки комментариев
.... копипастим думая.
При присоедениении к своему файлу библиотеки дерективой #include *.h происходит простой копипаст кода библиотеки или компилятор подходит к этому вопросу избирательно, т.е. вставляет только часть кода библиотеки, только используемые в файле функции. т.е. не всегда рационально из-за одной функции подключать библиотеку. (о диджиталврайт я молчу, не знаю кто это придумал. Так скоро дойдем до #includ готовая программа.h ....void main() {написать программу();} )
Стоит ли использовать чужие библиотеки? Это наверное каждому самому решать от конкретных задач.
Те кто пишет библиотеки не ленитесь делать файл выделенных слов(подсвеченных).
А еще редко где встречается описание функций библиотеки. Чтоб в отдельном файле редми описывались функции, синтаксис, пример использования. Приходится ехемпл ковырять, а посмотришь сср там еще есть неописанные. (А иногда и по рукам бы надавал, несмотря на свой "чайниковый" опыт програмирования)
зы у меня пример от адафрута сожрал всю память at328p
Вообще этот вопрос решается во время линковки.
Адафрут он не расчитан на 328. Там надо 2560 или DUE. Вообще дисплейные модули это вам не видеокарта - он умеет только держать в буфере 1 кадр.
А тема о чем?
Это вопросы или утверждения?
Читается как поток мыслей.
Если не нравится одна библиотека, ищешь другую. Если все не походят, пишешь сам. Если сам не можешь, идёшь в раздел заказов, может кто напишет.
Если относиться к форуму, как к ФОРУМУ, то и читается верно. Да поток мыслей, все в формате "Форума". Конечно многие привыкли из каждой темы делать "судебное заседание", устраивать дебаты переходящие в склокку...
Да использовал другой формат, не формат вопрос-ответа.
Вообще этот вопрос решается во время линковки.
Спасибо за ссылку, позновательно. Немного разогнал туман в голове, но есть ворос:
В библиотеке 2 файла *.h и *.ccp из статьи следует, что первый включается в тело нашего файла копипастом полностью. Не совсем понятно что происходит на этапе линковки с *.сср. Поправьте если не прав:
Тело функций раскладывается по адресам, места вызова функций заменяются переходами по указанным адресам. в этом суть линковки?
Адафрут он не расчитан на 328. Там надо 2560 или DUE. Вообще дисплейные модули это вам не видеокарта - он умеет только держать в буфере 1 кадр.
Не расчитан кем? 2560 по всем параметрам схожа с 328, кроме размера памяти. Не расчитан если в слепую копи-пастить, о чем я и говорю. Можно "подрезать" библиотеку, оставив только нужное. Будет экономия памяти. И все хорошо входит и работает. Не видеокарта, не спорю.
Если Вы имели в виду *.cpp, то ничего не происходит - в линковке он никакого участия не принимает.
Так ото ж!
Если пользовать с умом, то и резать не надо - само отбросится при линковке. Только вот буфер размером в половину памяти 328'ой никуда не денешь. Чтобы его отбросить, надо выбросить всю библиотеку (ну, или переписать её до неузнаваемости).
Если Вы имели в виду *.cpp, то ничего не происходит - в линковке он никакого участия не принимает.
В нем содержаться тела всех функций(я их функциями не верно называю, видимо). Производит ли компилятор отсев тех функций которые не используются в программе? Помоему нет. Происходит вставка всех.
В нем содержаться тела всех функций(я их функциями не верно называю, видимо). Производит ли компилятор отсев тех функций которые не используются в программе? Помоему нет. Происходит вставка всех.
Компилятор не может их отсеивать, даже если бы и захотел, т.к. компилятор всегда работает с одним файлом, а функция может вызываться из другого. Компилятор честно их все компилирует и складывает в объектный файл. На этом его работа заканчивается. Линкер же (или компоновщик) как раз расставляет реальные адреса и он может точно знать, что какая-то функция ни разу не была использована, т.к. её адрес никуда не подставлен. Он её и выбросит (если у него такая опция установлена, конечно). Это немного упрощённо, но в целом примерно так.
Если относиться к форуму, как к ФОРУМУ, то и читается верно. Да поток мыслей, все в формате "Форума". Конечно многие привыкли из каждой темы делать "судебное заседание", устраивать дебаты переходящие в склокку...
Да использовал другой формат, не формат вопрос-ответа.
Вы считаете, что я Вам нахамил или потроллить решил? О, ну тогда, извините, у меня нет столько времени заниматься ерундой (троллить или хамить).