|
|
 |
Ответов
|
May 16 2018, 09:05
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(AVI-crak @ May 16 2018, 11:51)  ...брось эту каку, и больше не наступай - измажься весь, и от запаха уже не избавишься. Не стоит так все драматизировать! lib/a файлы - вполне годное и полезное решение, например, чтобы избежать пересборки толстого проекта при каждом ребилде. Например, в свое время я наделал таких lib из кучи c-файлов их периферийноф библиотеки SPL от ST. Потом просто добавлял соотв. либу в дерево файлов. Сборка такого проекта проходит всегда быстрее. А в очень больших проектах уже отлаженные модули самого проекта тоже собирал в соотв. либы и подключал их к финальной сборке. Так и отлаживать проще (по частям) и вообще удобнее. Если среда поддерживает такое понятие, как Project Workspace, то это cделать очень просто. Короче, в сторонние либах ничего плохого нет. © "Не так страшен черт, как его молюют" Более того в любом даже убогом проекте линкер и так подключит автоматом свои библиотеки, идущую в комплекте с компилятором (хотя от и можно отказаться, чем нажить себе доп. головную боль). Поэтому - все на либах/все спрятать от гипотетических воров - и наоборот - никаких lib, голые сырцы - это две крайности и обе одинаково вредны. Разумно - искать компромисс
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 16 2018, 11:25
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894

|
Цитата(Forger @ May 16 2018, 15:05)  Не стоит так все драматизировать! lib/a файлы - вполне годное и полезное решение, например, чтобы избежать пересборки толстого проекта при каждом ребилде. Это имеет смысл когда к библиотеке есть документация, полный набор файлов для быстрого поиска функций, или когда библиотека твоя личная. Но вот использовать жирную чужую библиотеку без возможности заглянуть в её содержимое - уже явный перебор. Кстати насчёт пересборки проекта - gcc следит за изменениями в файлах, если кеш *.a разрешен - то он его не собирает каждый раз, а использует уже имеющиеся. Это работает даже при переключении проектов. Файлы *.a остаются в папке сборки, и используются по мере надобности. Устаревшая версия уничтожается автоматически. Так-что насчёт жирных проектов - не всё столь однозначно.
|
|
|
|
|
May 16 2018, 11:54
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(AVI-crak @ May 16 2018, 14:25)  Это имеет смысл когда к библиотеке есть документация, полный набор файлов для быстрого поиска функций, или когда библиотека твоя личная. Но вот использовать жирную чужую библиотеку без возможности заглянуть в её содержимое - уже явный перебор. А как можно пользоваться библиотекой, если к ней нет документации (на край вменяемо написанных h-файлов)? Наугад тыкаться? Где такую можно скачать? Цитата Кстати насчёт пересборки проекта - gcc следит за изменениями в файлах, Это умеет делать любой компилятор. С этим спора нет. Но при условии, если не было изменений в файлах, которые инклудятся в соотв. c/c++ файлах. Поэтому помимо простой сборки проекта существует еще отдельная возможность принудительной пересборки проекта, что-то типа "REBUILD". В т.ч. CLEAN - удалить все эти скомпилированные *.obj файлы, после которой по-любому весь проект будет компилироваться заново и полностью. По мне проще и удобнее подключить к проекту несколько соотв. lib-файлов с соотв. интерфейсными h-файлами, вместо груды исходников, которые потом придется "тащить" через весь проект, вынужденно добавляя их в SVN, хотя они и не будут меняться.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 16 2018, 12:53
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Forger @ May 16 2018, 14:54)  По мне проще и удобнее подключить к проекту несколько соотв. lib-файлов с соотв. интерфейсными h-файлами, вместо груды исходников, которые потом придется "тащить" через весь проект, вынужденно добавляя их в SVN, хотя они и не будут меняться. Вот мы и добрались до сути. На самом деле в SVN есть такая штука, как externals. Она позволяет добавить к рабочей копии проекта ту самую "груду исходников" (библиотечный код) из немного другого места, причём с определённой ревизией. Это более прогрессивный подход, так как позволяет подключить к проекту нужную версию библиотечного кода. При изменениях в библиотечном коде (исправление ошибок, например), зависящие от него проекты не изменятся. В то же время есть возможность подтянуть туда эти изменения, всего лишь изменив номер ревизии в externals. .lib тут ни при чём, это второстепенная деталь.
|
|
|
|
|
May 16 2018, 13:35
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(scifi @ May 16 2018, 15:53)  Вот мы и добрались до сути. На самом деле в SVN есть такая штука, как externals. Так далеко в SVN я еще не забирался ..... Фактически у меня сейчас так и сделано, но не на базе SVN, а просто - проекты лежат в одном месте, а общие библиотеки в другом месте, но рядом. Если пересобираю общие библиотеки, то зависимые проекты тоже нужно пересобирать. Т.е. все это делаю можно сказать "вручную". Если SVN это все упрощает и автоматизирует, то это - очень полезно! Короче, спасибо за подсказку ! Цитата .lib тут ни при чём, это второстепенная деталь. Одно другому не мешает - все это, имхо, дело вкуса и личных предпочтений
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
Сообщений в этой теме
aBoomest Библиотеки May 16 2018, 06:06 novikovfb Обычно *.a - архив объектных модулей (объектная би... May 16 2018, 06:08 Forger В IAR решили выпендрится перед всеми другими среда... May 16 2018, 06:27 zhevak Цитата(Forger @ May 16 2018, 11:27) В IAR... May 18 2018, 10:11      AVI-crak Цитата(Forger @ May 16 2018, 17:54) А как... May 18 2018, 11:21       scifi Цитата(AVI-crak @ May 18 2018, 14:21... May 18 2018, 11:54       Forger Цитата(AVI-crak @ May 18 2018, 14:21... May 18 2018, 18:23 AlexandrY Цитата(aBoomest @ May 16 2018, 09:06) Т.е... May 16 2018, 06:59 aBoomest Спасибо. May 16 2018, 08:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|