我看过这些链接:This one 和 This 和其他几个类似的。 这里给出的答案都不是工作方法。
我有两个源文件 a1.c
、 a2.c
和两个头文件 a1.h
和 a2。 h
.我想在这两个文件中包含头文件(和 a1.c 中的 a2.c,因为我需要从 a2.c 使用一个函数)
我已经包含了
#include "a1.h"
#include "a2.h"
在a1.c的源文件中
我在 Ubuntu 上使用 GCC。并使用命令 gcc a1.h -o a1.out -lm
那没有用。
我试过
gcc -c -I/Home/Documents/ctests/ a1.c -o a1.out
还有
gcc -c a1.c -I/Home/Documents/ctests/ -o a1.out
我的拼写也没有问题(无论如何,一个字母和一个数字作为文件名几乎没有任何错误余地)。
此外,所有文件都在同一个文件夹中。
我知道这可能是一个微不足道的问题,但我一直坚持这个问题,希望得到任何帮助。就使用命令行而言,我对编程比较陌生,对 Linux 和 Unix 完全陌生。
非常感谢!
最佳答案
gcc -c
告诉 gcc 将文件编译为对象(随处可见的 .o 文件)。稍后与其他一些 .o 文件链接到可执行文件。
所以您要做的是分别编译这两个文件,然后再链接它们。像这样。
gcc -I"/Home/Documents/ctests/" -c a1.c
gcc -I"/Home/Documents/ctests/" -c a2.c
gcc -o myprogram a1.o a2.o
或者只是同时编译和链接。
gcc -I"/Home/Documents/ctests/" a2.c a1.c -o myprogram
然后像这样运行你的程序
path_to/myprogram
关于c - 源文件找不到头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15744803/