如何使用makefile?
发布网友
发布时间:2022-05-03 05:37
我来回答
共5个回答
热心网友
时间:2023-10-11 10:59
以hello_test.c文件为例
1.创建程序
在linux控制台界面下 ,输入vi hello_test.c,输入i进入编辑插入模式,输入代码如下:
#include <stdio.h>
int main(void)
{
printf("Hello,Word!/n");
return 0;
}
用gcc编译程序
输入命令:gcc hello_test.c
输入命令:ls
显示:a.out hello_test.c
输入命令:./a.out //执行程序
2.使用Makefile
(1)创建Makefile,在hello_test.c所在目录输入 vi Makefile
(2)输入Makefile内容。在vi插入模式下输入:
hello_test : hello_test.c
gcc -o hello_test hello_test.c //特别注意 gcc前面不是空格,而是tab间隔符,否则会出现makefile:2: *** 遗漏分隔符错误
clean :
rm -fr hello_test *.o *.core
(3)输入make,屏幕输出 gcc -o hello_test hello_test.c,表示编译已经通过。
生成 hello_test。
热心网友
时间:2023-10-11 10:59
make工具,只是一个批处理工具。如果只是使用makefile,那么只要有make.exe这个文件就可以了。
make工具会根据makefile里面的信息来编译程序。在makefile里面,一般指定了用什么编译器,用什么程序链接,以及需要那些库的支持,还有一些其它的设置。
如果你没有相应的编译工具和库的支持,make会出错的。所以,你必须要先弄清楚,你拿到的c程序,需要什么样的环境才能编译。一般来说,你看看它C头文件和makefile里面的信息就应该能知道。
热心网友
时间:2023-10-11 11:00
出现这样的连接错误的话,可能是因为你的源文件里指定的这个函数所在的库文件不存在,或者那个库文件存在但却不是为你的电脑的cpu结构build的。如果你确定你有那个库文件,那么你需要在连接的时候告诉连接器你需要依赖这个库文件,并且把路径告诉它。如果还不成功的话,那么就可能是你需要合适的cpu结构的那个相同的库文件,就是amd64,itanium,x86之类的。
热心网友
时间:2023-10-11 11:00
makefile
就是告诉make程序怎么编译文件。比如说要生成可执行程序my_exe.exe.该程序需要三个文件a1.c
a2.c
和
a3.c
那么你的makefile文件就可以写为
my_exe.exe:
a1.o
a2.o
a3.o
ld
-o
my_exe.exe
a1.o
a2.o
a3.o
%.o
:
%.c
cc
-o
$@
$<
第一段是说我要生成文件my_exe.exe需要三个.o文件;要是都有就会执行下面的链接命令;;;如果有的.o不存在就会执行下面那段代码。下面的意思是一个.o文件依赖于与它同名的。c要是这个.c文件存在,则编译并成.o,若还不存在就会报错
热心网友
时间:2023-10-11 11:01
怎么执行呢
比如我是一个10.c和ghl.h的文件,10.c里有程序;
edit:10.c
ghl.h
gcc
-o
edit
10.c
clean:
rm
edit
10.o
修改makefile文件,注意gcc之前是一个tab键
然后make,就会在当前目录下会生成edit可执行文件,
./edit
即可执行
热心网友
时间:2023-10-11 10:59
以hello_test.c文件为例
1.创建程序
在linux控制台界面下 ,输入vi hello_test.c,输入i进入编辑插入模式,输入代码如下:
#include <stdio.h>
int main(void)
{
printf("Hello,Word!/n");
return 0;
}
用gcc编译程序
输入命令:gcc hello_test.c
输入命令:ls
显示:a.out hello_test.c
输入命令:./a.out //执行程序
2.使用Makefile
(1)创建Makefile,在hello_test.c所在目录输入 vi Makefile
(2)输入Makefile内容。在vi插入模式下输入:
hello_test : hello_test.c
gcc -o hello_test hello_test.c //特别注意 gcc前面不是空格,而是tab间隔符,否则会出现makefile:2: *** 遗漏分隔符错误
clean :
rm -fr hello_test *.o *.core
(3)输入make,屏幕输出 gcc -o hello_test hello_test.c,表示编译已经通过。
生成 hello_test。
热心网友
时间:2023-10-11 10:59
make工具,只是一个批处理工具。如果只是使用makefile,那么只要有make.exe这个文件就可以了。
make工具会根据makefile里面的信息来编译程序。在makefile里面,一般指定了用什么编译器,用什么程序链接,以及需要那些库的支持,还有一些其它的设置。
如果你没有相应的编译工具和库的支持,make会出错的。所以,你必须要先弄清楚,你拿到的c程序,需要什么样的环境才能编译。一般来说,你看看它C头文件和makefile里面的信息就应该能知道。
热心网友
时间:2023-10-11 11:00
出现这样的连接错误的话,可能是因为你的源文件里指定的这个函数所在的库文件不存在,或者那个库文件存在但却不是为你的电脑的cpu结构build的。如果你确定你有那个库文件,那么你需要在连接的时候告诉连接器你需要依赖这个库文件,并且把路径告诉它。如果还不成功的话,那么就可能是你需要合适的cpu结构的那个相同的库文件,就是amd64,itanium,x86之类的。
热心网友
时间:2023-10-11 11:00
makefile
就是告诉make程序怎么编译文件。比如说要生成可执行程序my_exe.exe.该程序需要三个文件a1.c
a2.c
和
a3.c
那么你的makefile文件就可以写为
my_exe.exe:
a1.o
a2.o
a3.o
ld
-o
my_exe.exe
a1.o
a2.o
a3.o
%.o
:
%.c
cc
-o
$@
$<
第一段是说我要生成文件my_exe.exe需要三个.o文件;要是都有就会执行下面的链接命令;;;如果有的.o不存在就会执行下面那段代码。下面的意思是一个.o文件依赖于与它同名的。c要是这个.c文件存在,则编译并成.o,若还不存在就会报错
热心网友
时间:2023-10-11 11:01
怎么执行呢
比如我是一个10.c和ghl.h的文件,10.c里有程序;
edit:10.c
ghl.h
gcc
-o
edit
10.c
clean:
rm
edit
10.o
修改makefile文件,注意gcc之前是一个tab键
然后make,就会在当前目录下会生成edit可执行文件,
./edit
即可执行