makefile 头文件
时间: 2023-08-05 14:08:26 浏览: 100
跟我一起写 Makefile
在编译过程中,我们经常需要包含其他的头文件。如果头文件不在默认的搜索路径下,我们可以通过在Makefile中添加头文件的路径来解决这个问题。例如,如果头文件test.h位于/usr/include目录下,我们可以在Makefile中添加以下行来指定头文件的路径:
INC_CLUDE = -I/usr/include
然后,在编译规则中使用$(INC_CLUDE)来包含头文件。例如,对于test1.c,我们可以使用以下规则:
test1.o: test1.c
$(GCC) -c $< -o $@ $(INC_CLUDE)
这样,编译器就能够找到并包含test.h头文件了。\[1\]
另外,在链接过程中,我们经常需要链接一些库文件。如果库文件不在默认的搜索路径下,我们可以通过在Makefile中添加库文件的路径来解决这个问题。例如,如果库文件libf1.so、libf2.so和libf3.so位于/usr/lib目录下,我们可以在Makefile中添加以下行来指定库文件的路径:
lib_PATH = -L/usr/lib/ -lf1 -lf2 -lf3
然后,在链接规则中使用$(lib_PATH)来链接库文件。例如,对于目标文件test1,我们可以使用以下规则:
test1: test1.o
$(GCC) -o $@ $< $(lib_PATH)
这样,链接器就能够找到并链接所需的库文件了。\[2\]
如果我们想将这个案例分享给别人使用,但是别人的库文件和头文件可能不在相同的路径下,我们可以在当前目录下创建一个include目录和一个lib目录,并将需要的头文件和库文件复制到相应的目录中。然后,在Makefile中将路径配置为当前目录。例如,我们可以使用以下行来指定头文件和库文件的路径:
INCLUDE = -I./include
LIB_PATH = -L./lib -lf1 -lf2 -lf3
这样,无论给谁,他们都可以直接编译,而不需要进行额外的配置操作。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [四、Makefile包含 头文件和库文件](https://blog.csdn.net/zzsxyl/article/details/109625653)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文