我已经查看了一些地方以找出文件在Mac上的放置位置,似乎将它们放置在/usr/lib/libmylib.dylib
和/usr/include/mylib.h
中是正确的位置,而不是放在主目录中目录或/usr/local/lib
中。 (这是用户在计算机上安装的东西。)
请让我知道是否正确。
然后我剩下的问题是在Windows和Linux上放置C库的等效位置(即最佳)在哪里。在here中寻找窗口会显示%windir%\system32
或%SystemRoot%\winsxs
。但是随后他们似乎在说,由于种种原因,放置它仍然是一个糟糕的地方。所以我不确定在那里。
然后剩下的就是如何为Linux做这件事了。似乎与Mac上的相同。
最终目标是使某人可以简单地在其C代码中执行#include <mylib.h>
并使其正常工作。
答案 0 :(得分:1)
这取决于您使用的macOS版本。
对于Mac,由于Apple在macOS 10.11 El Capitan中添加了“系统完整性保护”(SIP),因此您将无法在macOS下的/usr/lib
中放置库或在/usr/include
中放置标头。 2015年10月)。您将需要使用/usr/local/lib
或/opt
下的某个地方。
然后,您需要确定C编译器是否默认配置为在/usr/local/include
中查找标头,在/usr/local/lib
中查找库。如果不是,那么您需要在命令行中添加-I /usr/local/include
和-L /usr/local/lib
。 (如果将库放在/opt
下,则肯定需要具有适当值的可比较选项。)
您可以在Can Mac OS X El Capitan run software compiled for Yosemite that expects libraries in /usr/gnu64/lib?中找到一些相关链接,该链接的标题问题的答案是“不,不能”。
答案 1 :(得分:1)
@ Linux:
/ 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这样的构建系统来自动执行该编译。