在Windows、Mac和Linux上使用的C库应该放在哪里
我已经查看了几个地方来确定文件在Mac上的位置,似乎将它们放在在Windows、Mac和Linux上使用的C库应该放在哪里,c,linux,windows,macos,package,C,Linux,Windows,Macos,Package,我已经查看了几个地方来确定文件在Mac上的位置,似乎将它们放在/usr/lib/libmylib.dylib和/usr/include/mylib.h是正确的位置,而不是放在主目录或/usr/local/lib中。(这是用户在其计算机上安装的内容) 请让我知道这是否正确 接下来我的问题是,在windows和linux上放置C库的等效位置(即最佳位置)在哪里。查找windows时会显示%windir%\system32或%SystemRoot%\winsxs。但他们似乎在说,出于几个原因,这仍然是
/usr/lib/libmylib.dylib
和/usr/include/mylib.h
是正确的位置,而不是放在主目录或/usr/local/lib
中。(这是用户在其计算机上安装的内容)
请让我知道这是否正确
接下来我的问题是,在windows和linux上放置C库的等效位置(即最佳位置)在哪里。查找windows时会显示%windir%\system32
或%SystemRoot%\winsxs
。但他们似乎在说,出于几个原因,这仍然是一个不好的地方。所以我不确定有没有
那么剩下的就是如何去做。似乎和Mac上的一样
最终目标是让人们只需在C代码中加入,并使其正常工作。这取决于您使用的macOS版本 对于Mac,由于苹果在macOS 10.11 El Capitan中添加了“系统完整性保护”(SIP)(大约2015年10月),您将无法在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
下,则肯定需要具有适当值的可比较选项。)
你可以在标题问题的答案中找到一些相关链接,该链接是“不,它不能”。@Linux:
- /动态库(.so)的usr/lib路径
- /库头的usr/include路径(.h)
gcc -o <src_program_app> -I/usr/local/include/<ur_library_dir> <src_program>.c
gcc-o-I/usr/local/include/.c
其中src_program.c具有在ur_library_dir上找到的库的导入
但是,您可以稍后尝试使用类似Cmake的生成系统,该系统可以自动编译。对于Linux和Mac,请参阅。请注意,有关Unix堆栈交换的问题可以追溯到2011年。如果有任何与macOS(当时的macOS X)相关的信息,它可能不再准确。SIP功能更改了规则。在Windows中,没有一个位置可以放置头文件。请记住,Windows是一个不利于开发人员的环境。