Я настраиваю libcurl, libssl и другую библиотеку. Я не хочу заменять системную библиотеку, потому что, если я изменю ее систему, она создаст конфликт lib, и мне нужно будет скомпилировать все остальные компоненты в зависимости от этих библиотек.Лучший способ структурирования пользовательских подчиненных библиотек
Так что я начал использовать RPATH и начал структурировать так:
|-- bin
| |-- app.out
|-- lib
| |-- libboost_program_options.so -> libboost_program_options.so.1.49.0
| |-- libboost_program_options.so.1.49.0
| |-- libboost_system.so -> libboost_system.so.1.49.0
| |-- libboost_system.so.1.49.0
| |-- libboost_thread.so -> libboost_thread.so.1.49.0
| |-- libboost_thread.so.1.49.0
| |-- libcares.so -> libcares.so.2.0.0
| |-- libcares.so.2 -> libcares.so.2.0.0
| `-- pkgconfig
`-- sbin
`-- nginx
Этот подход работал. Теперь проблема в том, что мы начали использовать PHP и узел, которые требуют такой же версии приложения.
|-- bin
| |-- a.out
|-- lib
| |-- libboost_program_options.so -> libboost_program_options.so.1.49.0
| |-- libboost_program_options.so.1.49.0
| |-- libboost_system.so -> libboost_system.so.1.49.0
| |-- libboost_system.so.1.49.0
| |-- libboost_thread.so -> libboost_thread.so.1.49.0
| |-- libboost_thread.so.1.49.0
| |-- libcares.so -> libcares.so.2.0.0
| |-- libcares.so.2 -> libcares.so.2.0.0
| `-- pkgconfig
|-- php_ext
| `-- sqlite3.so
|-- node
| `-- node_modules
| |-- bin
| | |-- node
`-- sbin
`-- nginx
Теперь это svn-репо становится все больше и больше после каждого выпуска. Есть ли лучший способ структурировать это? без дублирования папки lib в каждом приложении?
Это было слишком долго, так как я играл с подрывной, чтобы дать официальный ответ , но не можете ли вы поместить свои собственные библиотеки в отдельный репозиторий subversion (или каталог верхнего уровня? Я забыл свои условия) и добавить этот репозиторий в качестве внешней зависимости subversion для каждого проекта? Это даст вам место для редактирования и хранения ваших файлов и позволит нескольким проектам захватить результаты. –
@ vivek-goel - это второе дерево для другой вещи - или это просто более поздняя версия первого дерева? –
@IwanAucamp Это более поздняя версия первого дерева. –