от
Я посмотрел на несколько мест, чтобы выяснить, где разместить файл на Mac, и кажется, что размещение их в
/usr/lib/libmylib.dylib
и
/usr/include/mylib.h
- правильное место, а не в каталоге HOME или в ZOegz0kfu. (Это для чего-то, что пользователь устанавливает на свой компьютер). Пожалуйста, дайте мне знать, если это правильно. Тогда остальная часть моего вопроса заключается в том, где находится эквивалентное (то есть лучшее) место для размещения библиотеки C на Windows и Linux. Поиск здесь для окон говорит либо
%windir%\system32
, либо
%SystemRoot%\winsxs
. Но потом они, казалось бы, говорят, что это все-таки плохое место по нескольким причинам. Так что я не уверен там. Тогда остальное - как это сделать для Linux. Кажется, так же, как на Mac. Конечная цель состоит в том, чтобы кто-то мог просто сделать
#include 
в своем C-коде и заставить его работать.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

2 Ответы

0 голосов
от
Это зависит от того, какие версии macOS вы используете. Для Mac вы не сможете разместить библиотеки в
/usr/lib
или заголовки в
/usr/include
под macOS, поскольку Apple добавила «Защита целостности системы» (SIP) в macOS 10.11 El Capitan (около октября 2015 г.). Вам нужно будет использовать
/usr/local/lib
или, возможно, где-нибудь под
/opt
. Затем вам нужно определить, настроен ли ваш компилятор C для поиска заголовков в
/usr/local/include
и библиотек в
/usr/local/lib
по умолчанию. Если это не так, вам нужно добавить
 и  в командную строку. (Если вы поместите свою библиотеку в /opt
, вам определенно потребуются сопоставимые параметры с соответствующим значением.) Вы можете найти некоторые соответствующие ссылки в Mac OS X El Capitan для запуска программного обеспечения, скомпилированного для Yosemite, который ожидает библиотеки в / usr / gnu64 / lib? Ответ на заголовок вопроса по этой ссылке: «Нет, не может».     
0 голосов
от
@ Linux: Путь / usr / lib для динамических библиотек (.so) / usr / include path для заголовков библиотек (.h) / usr / local / include - это префикс пути для пользовательских программ, не управляемых дистрибутивом. Вы захотите указать этот путь к компилятору C, чтобы найти библиотеки. Ваша команда это так:
gcc 

Где src_program.c имеет импорт библиотеки, найденный в ur_library_dir.

Однако позже вы можете попробовать систему сборки, такую как Cmake, которая автоматизирует эту компиляцию.
    
...