gpt4 book ai didi

linux - make的引用路径

转载 作者:太空宇宙 更新时间:2023-11-04 09:44:17 27 4
gpt4 key购买 nike

我刚刚开始学习“make”命令和从中派生的其他内容。我得到了这个很好的引用 html 页面,它教会了我“制作”的概念 http://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html它说,像这样

引用:

*# define any directories containing header files other than /usr/include
#
INCLUDES = -I/home/newhall/include -I../include
# define library paths in addition to /usr/lib
# if I wanted to include libraries not in /usr/lib I'd specify
# their path using -Lpath, something like:
LFLAGS = -L/home/newhall/lib -L../lib
# define any libraries to link into executable:
# if I want to link in libraries (libx.so or libx.a) I use the -llibname
# option, something like (this will link in libmylib.so and libm.so:
LIBS = -lmylib -lm*

这就是我不明白的地方。我不明白为什么你必须包括

用 INCLUDES 和 LFLAGS 分隔头文件。/usr/lib 和/usr/include 中的文件有什么区别?好像差不多对我来说,因为两者都包含一个不是共享对象(+archieves)或环境路径中的头文件路径。

此外,由于 usr/include 是编译时的默认路径,子目录中的所有文件是否也包含在内?例如,我想做的是,我想包含/usr/include/gtk+-3.0 作为附加路径,但由于它是一个子目录,我是否必须包含它?

最佳答案

实际上这不包括任何头文件或库,-I 选项告诉编译器在哪里可以找到包含在源代码中的头文件(标准头文件除外)#include -L 告诉链接器在哪里可以找到与 -l 选项链接的库。

换句话说,他们将目录添加到搜索路径,而不是实际的 header 或库...

变量名完全是任意的,但是它们确实指示哪些选项属于哪个工具,例如 LFLAGS(链接器标志)CFLAGS(编译器标志)。

/usr/lib/usr/include 通常分别包含系统库和头文件。

我建议您在开始制作之前阅读更多关于 C 和 GCC 的内容,因为它只是用于编写编译过程的脚本。

关于linux - make的引用路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18072962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com