我已经看了一些地方来找出在mac上的文件放置位置,似乎将它们放置到/usr/lib/libmylib.dylib/usr/include/mylib.h中是正确的,而不是放在主目录或/usr/local/lib中。(这是用户在其计算机上安装的东西)。
如果那是对的,请告诉我。
接下来我要问的是,在windows和linux上,哪里是放置c库的最佳位置。在windows中查找here表示%windir%\system32%SystemRoot%\winsxs。但后来他们似乎说,这仍然是一个不好的地方放它有几个原因。所以我不确定。
剩下的就是如何为Linux做这件事。好像和Mac上的一样。
最终目标是让某人可以简单地在他们的c代码中执行#include <mylib.h>并使其工作。

最佳答案

这取决于你使用的是哪个版本的macos。
对于Mac,由于苹果在MacOS 10.11 El Capitan(大约2015年10月)中添加了“系统完整性保护”(SIP),您将无法在MacOS下的/usr/lib/usr/include中放置库头。您需要使用/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?中找到一些相关链接,该链接的标题问题的答案是“不,它不能”。

07-24 09:46
查看更多