Мы кросс-компилируем приложение для целевой встраиваемой Linux под настольную Linux. Для тестирования и других целей мы используем статически связанные библиотеки с нашим приложением. Используемая нами библиотека тестирования - CMockery.
Мой вопрос: где должны жить статические библиотеки и включаемые файлы для CMockery, учитывая, что мы выполняем кросс-компиляцию?
Если бы мы не выполняли кросс-компиляцию, то должен войти в / usr / local / lib.
Некоторые предложения от нашей команды:





Примечание: после написания этого ответа мое резюме будет следующим:
Keep anything that is non-standard to the Linux distro you're using separate. In fact keep files for different projects separate even if they share libraries. This will make it much easier to move your files to another machine, to setup multiple complete builds for testing, and most importantly to be able to recreate the build starting from scratch.
Решение действительно субъективное.
Я задаю эти вопросы, потому что, если библиотека часто меняется или разные пользователи могут нуждаться в разных версиях, лучше, чтобы она была переносимой. То есть вы можете указать в своей сборке, где искать файлы.
Из предложений вашей команды я бы предпочел путь, содержащий ссылку на ваш проект. Это упростит воспроизведение всего через год (когда кто-то попросит вас настроить другую машину сборки).
Наконец, я бы не стал беспокоиться о попытках придерживаться «стандартных» расположений библиотек, потому что вы не создаете и не управляете дистрибутивом Linux. Более того, большинство людей на самом деле не знают ничего, кроме "/ usr / lib" и / usr / local / lib ", и даже люди, которые их знают, не знают разницы.
Делайте то, что лучше всего для вашего проекта, независимо от того, что это может быть.
Здорово! Спасибо за продуманный ответ.