导航:首页 > 编程系统 > linux编写makefile

linux编写makefile

发布时间:2021-02-28 01:50:47

linux下编写简单的makefile的报错

如果真的 简单,就不用 makefile
一个命令行
gcc -o hello hello.c
gcc 编译 hello.c 文件,目标 文件 hello

㈡ 在linux下怎么makefile

lex.yy.c: guish.l
flex guish.l lex.yy.c
guish.o: guish.cpp
g++ -fo guish.o guish.cpp
lex.yy.o: lex.yy.c
gcc -o lex.yy.o lex.yy.c
final: guish.o lex.yy.o
g++ -lfl final guish.o lex.yy.o
把这个保存到你程序目录下 文件名为makefile 然后进终端 cd到该目录 make一下试试
flex是生成c文件的词法生成器 但是我不会具体用 g++也不熟 所以命令应该是错的 makefile的格式就和我上面写的一样 下面的长空格是tab
还有你的-lfl 我把他理解成事gcc的参数了
你要makefile的规则我可以发给你一个pdf 看完都会基本使用makefile了
[email protected]

----------------------------------------------------------------------
----------------------------------------------------------------------

由于比较无聊乱回答问题的 ( makefile 帮助文档是真的)

剩下的坐等标准答案

㈢ linux的makefile文件是用什么语言写的

其实主要的部分就是编译命令,多数是gcc的编译命令。
有一些make程序能识别的特殊的东西,比如目标名称,@之类的特殊符号,$(CC)或者$(CFLAGS)等自定义的变量等。

㈣ 使用linux编程怎么写makefile

Makefile语法基础
在Linux下,自动化编译工具是通过make命令来完成的(一些工具厂商也提供了它们自己的make命令,如gmake等),make命令的基本格式如下:
make [-f makefile] [label]
它可以通过-f参数指定输入文件,当省略-f参数时,默认输入文件名为Makefile,由于我们通常不用这个-f参数,往往就用默认的Makefile文件名。
Makefile是一个文本文件,它是基于一定的语法规则的,它的基本执行规则定义如下:
target : [prerequisites]
command
target 标签,用于标志当前构建的规则,它也可以是文件。
prerequisites 依赖项,在构建该标签的时候先执行的规则
command make需要执行的命令。(任意的Shell命令)
注意:Makefile的target是顶格写的,而Command需要加一个Tab键。我这里为了排版看起来舒服点,每一行都多加了一个Tab键,如果要使用本文的Makefile示例,请去掉各行的第一个Tab键,否则make的时候报错。
例如,我们编写一个简单的Makefile:
clean:
@echo "clean"
all:
@echo "all"
当我们直接执行make命令的时候,输出如下:
tianfang > make
clean
tianfang > make all
all
tianfang > make clean
clean
从中我们可以看到:默认情况下构建第一个标签。可以通过在命令行参数中通过参数构建指定标签。

㈤ linux 命令行怎么写make makefile命令

无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make
install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和
makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员
来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和
makefile工具可以大大提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。
但令人遗憾的是,在许多讲述Linux应用的书籍上都没有详细介绍这个功能强大但又非常复杂的编译工具。在这里我就向大家详细介绍一下make及其描述文件
makefile。
Makefile文件
Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件

需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。makefile 文件是许多编译器--包括 Windows NT
下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。

㈥ [Linux]编写一个简单的C语言程序,编写Makefile文件。

//calculate.h
#ifndef DEFCALCULATE_H
#define DEFCALCULATE_H
#include <string>
#include <map>
#include <iostream>
#include <cctype>
using namespace std;
// =========================================================================
// = 一些标志,如数字、+-*/()
enum Token_value
{
NAME,
NUMBER,
END,
PLUS='+',
MINUS='-',
MUL='*',
DIV='/',
PRINT=';',
ASSIGN='=',
LP='(',
RP=')'
};
//#############################################################################
//#############################################################################
double term(bool); //乘法
double prim(bool); //处理初等项
double error(const string&); //错误函数
Token_value get_token(); //输入
double expr(bool get); //加和减
//#############################################################################
//#############################################################################
extern double number_value; //
extern string string_value; //
extern Token_value curr_tok; //当前操作标志
extern map<string,double> table;//
extern int no_of_errors; //
#endif

//winconsole.cpp
#include "calculate.h"
#include <sstream>
istream* input;
int main()
{
//switch(argc)
//{
//case 1:
input=&cin;
// break;
//case 2:
// input=new istringstream(argv[1]);
// break;
//default:
// error("too many arguments");
// return 1;
//}
table["pi"]=3.14159;
table["e"]=2.718182;
while (*input)
{
get_token();
if (curr_tok==END)
{
break;
}
if (curr_tok==PRINT)
{
continue;
}
cout<<expr(false)<<endl;
}
if (input!=&cin)
{
delete input;
}
return 0;
}
//error.cpp
#include "calculate.h"
int no_of_errors;
double error(const string& s)
{
no_of_errors++;
cerr<<"error:"<<s<<'\n';
return 1;
}
//expr.cpp
#include "calculate.h"
Token_value curr_tok=PRINT;
double expr(bool get)//加和减
{
double left=term(get);
for (;;)
{
switch(curr_tok)
{
case PLUS:
left+=term(true);
break;
case MINUS:
left-=term(true);
break;
default:
return left;
}
}
}
//get_token.cpp
#include "calculate.h"
extern Token_value curr_tok;
Token_value get_token()
{
char ch=0;
cin>>ch;
switch(ch)
{
case 0:
return curr_tok=END;
case ';':
case '*':
case '/':
case '+':
case '-':
case '(':
case ')':
case '=':
return curr_tok=Token_value(ch);
case '0':case '1':case '2':case '3':case '4':
case '5':case '6':case '7':case '8':case '9':
case '.':
cin.putback(ch);
cin>>number_value;
return curr_tok=NUMBER;
default:
if (isalpha(ch))
{
cin.putback(ch);
cin>>string_value;
return curr_tok=NAME;
}
error("bad token");
return curr_tok=PRINT;
}
}
//prim.cpp
#include "calculate.h"
double number_value;
string string_value;
map<string,double> table;
double prim(bool get)
{
if (get)
{
get_token();
}
switch(curr_tok)
{
case NUMBER:
{
double v=number_value;
get_token();
return v;
}
case NAME:
{
double& v=table[string_value];
if (get_token()==ASSIGN)
{
v=expr(true);
}
return v;
}
case MINUS:
{
return -prim(true);
}
case LP:
{
double e=expr(true);
if (curr_tok!=RP)
{
return error(")expected");
}
get_token();
return e;
}
default:
return error("primary expected");
}
}
//term.cpp
#include "calculate.h"
double term(bool get)
{
double left=prim(get);
for (;;)
{
switch(curr_tok)
{
case MUL:
left*=prim(true);
break;
case DIV:
if (double d=prim(true))
{
left/=d;
break;
}
return error("divide by 0");
default:
return left;
}
}
}
//makefile
objects = error.o expr.o get_token.o prim.o term.o winconsole.o
calculate:$(objects)
g++ -Wall -g -o calculate $(objects)
$(objects) : %.o : %.cpp
g++ -c $(CXXFLAGS) $< -o $@

//这是一个在linux下实现的简单的计算器程序,实现带括号的+-*/运算的,由于复制进来代码格式有点出入,你自己把代码格式规范下,尤其是makefile文件里的命令前面一定要以一个tab开始

㈦ linux中用C语言编写完模块后怎么编写makefile文件用到什么命令以什么格式编写

1、先写Makefile编译出***.ko文件
模板如下,保存到命名为Makefile文件里,放到你代码的同级目录下
TARGET=my_proc.ko
LINUXDIR=/lib/moles/$(shell uname -r)/build
PWD=$(shell pwd)
obj-m :=
obj-m += my_proc.o

all: $(TARGET)
$(TARGET): $(OBJS)
make -C $(LINUXDIR) SUBDIRS=$(PWD) moles
clean:
rm -f moles.order Mole.symvers $(TARGET) *.mod.c *.o
rm -rf .tmp_versions .mod* Mole.markers
2、make
3、root权限下用命令插入模块
insmod my_proc.ko
4、可以用你写的应用程序打开、操作模块了
5、查看模块命令
lsmod
cat /proc/moles
modinfo my_proc.ko
6、root下卸载模块
rmmod

㈧ linux中用C语言编写完模块后怎么编写makefile文件

1、先写Makefile编译出***.ko文件
模板如下,保存到命名为Makefile文件里,放到你代码专的同级目录下
TARGET=my_proc.ko
LINUXDIR=/lib/moles/$(shell uname -r)/build
PWD=$(shell pwd)
obj-m :=
obj-m += my_proc.o

all: $(TARGET)
$(TARGET): $(OBJS)
make -C $(LINUXDIR) SUBDIRS=$(PWD) moles
clean:
rm -f moles.order Mole.symvers $(TARGET) *.mod.c *.o
rm -rf .tmp_versions .mod* Mole.markers
2、属make
3、root权限下用命令插入模块
insmod my_proc.ko
4、可以用你写的应用程序打开、操作模块了
5、查看模块命令
lsmod
cat /proc/moles
modinfo my_proc.ko
6、root下卸载模块
rmmod

㈨ 如何在linux下写makefile

makefile :
文件命名:
1、袭 makefile Makefile GNUmakefile
在同一目录下, 只能出现一种.
执行方式:make
2、test.mk test.Linux test.AIX
执行方式 :make -f test.mk/test.Linux/test.AIX

意思是你创建一个文件名为上面种文件名的一种后。你就创建了一个makefile.
然后你就可以在你创建的makefile里写命令了。

阅读全文

与linux编写makefile相关的资料

热点内容
les迟度大的电影推荐 浏览:926
风流圣途小说免费阅读 浏览:556
美国人用什么看片 浏览:686
樱桃小花喵txt 浏览:870
如何把手机app缩小 浏览:999
0855在线视频 浏览:381
韩国三极男演员 浏览:558
压缩文件夹很慢是cpu太差吗 浏览:338
爱情来得不准时完解说整版 浏览:456
一代枭雄粤语吕良伟下载 浏览:541
韩国电影爱情推理片大全疯狂列爱 浏览:482
吉吉影音播放资源网址 浏览:427
李采谭主演电影合集 浏览:675
父子之间的禁忌by似梦非梦 浏览:160
主角叫阿尔法 丢蛋的变龙 浏览:474
黑人离职电影 浏览:921
家教高级课程扮演者 浏览:698
app9800com/vod/1.html 浏览:854
和鸭王一样的电影 浏览:4
电影院一般有多大 浏览:336

友情链接