c - 在哪里放置用于 Windows、Mac 和 Linux 的 C 库
问题描述
我已经查看了几个地方来确定在 Mac 上放置文件的位置,似乎将它们放置到/usr/lib/libmylib.dylib
and/usr/include/mylib.h
是正确的位置,而不是在 HOME 目录中,或者在/usr/local/lib
. (这是用户在他们的计算机上安装的东西)。
请让我知道这是否正确。
然后我剩下的问题是在 Windows 和 linux 上放置 C lib的等效(即最佳)位置在哪里。在这里寻找窗口说要么%windir%\system32
或%SystemRoot%\winsxs
。但后来他们似乎说这仍然是一个糟糕的地方,有几个原因。所以我不确定那里。
然后剩下的就是如何为Linux做这件事了。好像和Mac一样。
最终目标是有人可以简单地#include <mylib.h>
在他们的 C 代码中执行并让它工作。
解决方案
@Linux:
- 动态库 (.so) 的 /usr/lib 路径
- 库头文件的 /usr/include 路径 (.h)
/usr/local/include 它是不受发行版管理的用户程序的路径前缀。您将需要指示 C 编译器的此路径以查找库。你的命令是这样的:
gcc -o <src_program_app> -I/usr/local/include/<ur_library_dir> <src_program>.c
其中 src_program.c 具有在 ur_library_dir 上找到的库的导入。
但是,您可以稍后尝试使用 Cmake 之类的构建系统来自动执行此编译。
推荐阅读
- xslt - 如何使用 XSLT 将 MathML 文件转换为 SSML
- javascript - nodejs进程内存泄漏
- mysql - 在加入 MySQL 时从主表中选择特定数据
- java - 在 try 子句中抛出异常
- jquery - jQuery可拖动元素在拖动后与可调整大小的父元素分离
- python - 递归地将子目录中的所有文件移动到 Python 中的另一个目录
- r - 从 url 列表中导入 excel 文件
- google-cloud-platform - 输入实例不是 JSON 格式
- axios - 在请求服务器 API 的方法上使用 axios,但通常在标头上显示请求方法:选项
- ios - 合并 iCloud 冲突的 UIDocument 更改