c - makefile中的链接顺序是什么?

标签 c makefile

我是 makefile 概念方面的新手。请随时帮助我了解基础知识。

hellomake:   hello.o hi.o mymain.o
    gcc hello.o hi.o mymain.o
mymain.o:   mymain.c
    gcc -c mymain.c

hello.o:    hello.c
    gcc -c hello.c

hi.o:   hi.c
    gcc -c hi.c

如果我更改目标中 .o 文件的顺序,那么发生链接的顺序是什么?记住我的 mymain.o 依赖于 hello.ohi.o

最佳答案

链接顺序没有变化;当 .c/.o 文件更改时,make 将始终运行 gcc hello.o hi.o mymain.o,因为这是您告诉它要做的。

请记住,make 与 C 或链接无关,也不了解 C 或链接。它只是运行您指定的命令以生成构建目标所需的文件。在本例中,您指定了顺序 hello.o hi.o mymain.o,这就是 make 将运行的顺序。

关于c - makefile中的链接顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31342780/

相关文章:

c - 我如何仅使用 if 语句重写此选择结构?

c - 使用 C 的定时器代码中的空循环含义

c++ - rand_r 是否是真正的线程安全的?

c++ - 创建项目,从 Makefile 到 UNIX 中的静态/动态库

c - 为什么vlc隐藏结构定义

c - makefile中 "include"和 "-include"的区别

c - 对 SDL_Freesurface 的 undefined reference

c - Makefile .c + .as 与 ncurses

c - 并行构建期间 Lex/Yacc makefile 的依赖性问题

c - 如何展示信息?