Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
902
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6089
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4401
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как лучше всего организовать мой код проекта C и его внешние библиотеки?
Я начинаю новый проект C, который в основном основан на OSS. Он также будет на SourceForge, и я хотел бы воспользоваться этой возможностью, чтобы изучить установленные лучшие практики для организации такого рода кода. Я использую библиотеки, такие как libcurl и libz, и я скомпилирую его с помощью MinGW и MSYS.
Я буду распространять копии источника всех библиотек, которые я использую с моим проектом, поэтому людям, загружающим источник, не нужно будет клевать и охотиться за зависимостями. Как я должен называть каталог, в котором я храню библиотеки? До сих пор я колебался между:
- Либ, потому что это библиотеки. Однако 'lib' имеет другую коннотацию в UNIX-мире.
- src, потому что они являются исходными файлами.
- 3-я партия, потому что я ее не писал.
И где я должен скомпилировать эти библиотеки? Должен ли я просто настроить и установить их в корневой каталог системы, или я должен настроить каталог, в который все библиотеки должны компилироваться, и связать оттуда? Очевидно, что это будет иметь последствия для моего Makefile.
Как я должен идти об этом? Существуют ли установленные соглашения, которым я должен следовать? Они где-то записаны?
Во-первых, для внешних библиотек я бы использовал vendor , но это просто предпочтение.
Во-вторых, я не думаю, что это хорошая идея, чтобы установить другие библиотеки в корневой системе системы, без ведома пользователей. Самое главное, потому что это будет конфликтовать с более поздними установленными версиями этих библиотек. Поэтому я думаю, что лучшее место для этих библиотек будет находиться в том же каталоге, что и ваше приложение.
Вы также можете статически скомпилировать эти библиотеки в свою программу.
Мы используем что-то с суффиксом _ext или _EXT (т. е. MyProject_EXT), чтобы обозначить, что он является внешним по отношению к нашему проекту для хранения исходного кода внешних пакетов, с которыми мы связываемся.
Я согласен с Питером. Внешние библиотеки не должны быть встроены в корневую систему системы, так как они могут вызвать конфликты. Я бы построил их в своем каталоге, а затем установил их в каталог /lib (или, возможно, /extlib), который является уникальным для вашего приложения, и связал бы их там.
Пожалуйста, не отправляйте сторонние источники с вашим кодом, либо в исходном коде, либо связанные статически в двоичные файлы, или любым другим способом. Это будет просто мешать другим копиям того же самого и не будет обновляться, когда библиотека требует исправления. Расскажите пользователю, каковы требования (и следите за изменениями API в библиотеке!). Самокомпилирующийся пользователь обязательно получит зависимости, дистрибутив будет следить за тем, чтобы ваш пакет работал с версией, которую они отправляют.