Adi*_*idu 5 c linker compilation
假设我有一个带有两个子目录 B 和 C 的父目录 A。
子目录 C 有 helper.c 和 helper.h,如图:
//helper.c
void print(){
printf("Hello, World!\n");
}
//helper.h
void print();
Run Code Online (Sandbox Code Playgroud)
现在,在子目录 B 中,我有一个 main.c,它只调用打印函数:
//main.c
#include<stdio.h>
#include"../C/helper.h"
void main(){
print();
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下命令来编译 main.c:
Command 1: gcc main.c //Gives undefined reference to 'print' error
Command 2: gcc main.c ../C/helper.c //Compiles successfully
Run Code Online (Sandbox Code Playgroud)
现在我从 main .c 中删除了 #include"../C/helper.h" 并再次尝试命令 2。它仍然有效。
所以我有以下问题:
i) 是否包含 helper.h 文件或 helper.c 有什么区别?
ii) 为什么命令 1 失败?
iii) 有没有办法编译我的 C 程序而不必每次都指定 helper.c?
| 归档时间: |
|
| 查看次数: |
3449 次 |
| 最近记录: |