目的: 基本掌握了 make 的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, file2.h file1.c: #include <stdio.h> #include "file2.h" int main() { printf("print file1$$$$$$$$$$$$$$$$$$$$$$$$\n"); ...
一、确认已经装好了GCC和Make的软件包可以使用whereis命令查看:如果whereis gcc和whereis make命令有结果,说明安装了这两个软件,可以继续往下做。二、使用GCC编译运行一个HelloWorld程序(只涉及单个文件)可以在任何一个目录编写C程序然后编译运行,我这个实例在自己主目录进行:然后就进入了编写程序的界面:按下键盘”i”进入编辑界面,然后输入程序:按ESC(进入命令行模式),然后输入”:wq”,冒号表示开始输入命令,字母...
make是linux下的编译命令,用于编译和生成Linux下的可执行文件。这个命令处理的对象是Makefile,makefile等。由于make的强大解析能力,makefile文件的编写也变得极为简单。以下是一个makefile的例子 1 objects = main.o kbd.o command.o display.o 2 insert.o search.o files.o utils.o3 4 edit : $(objects)5 gcc -o edit $(objects)6 7 $(objects) : defs.h8 kbd.o command.o files.o : comman...
1、安装插件2、Select a Kit,选择交叉编译链。第一次需要填写项目名称、选择动态库或者可执行文件 3 、在CMakeList下添加(按我的理解第2步选择后,这里就不需要再设置了,但是我这里还需再添加)set(CMAKE_C_COMPILER "/home/linux/xxxxxxxxxxxx/bin/arm-linux-gnueabihf-gcc")set(CMAKE_CXX_COMPILER "/home/linux/xxxxxxxxxx/bin/arm-linux-gnueabihf-c++")4、Build5、Make 成功6、arm目标板下运行成功 原文:https://www.cnbl...
Makefile不是Make Love从前在学校,混了四年,没有学到任何东西,每天就是逃课,上网,玩游戏,睡觉。毕业的时候,人家跟我说Makefile我完全不知,但是一说Make Love我就来劲了,现在想来依然觉得丢人。毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。基本上,Linux内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。 对于一个希望能够在Linux内核的汪洋代码里看到一丝曙光的人来说,将它们...
本文摘自http://blog.csdn.net/lufeiop02/article/details/6446343 Linux驱动一般以模块module的形式来加载,首先需要把驱动编译成模块的形式。简单的例子,#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>staticint __init test_init(void)
{printk("init module/n");return0;
}
staticvoid __exit test_exit(void)
{printk("exit modules/n");
}module_init(test_init);
module_exit(test_exit); ...
接上1.关于makefile的升级版本一:
libmath.a:add.o sub.o mul.o devl.oar rcs $@ $^
add.o:add.cgcc -c $^
sub.o:sub.cgcc -c $^
mul.o:mul.cgcc -c $^
devl.o:devl.cgcc -c $^.PHONY:clean
clean:rm -f add.o sub.o mul.o devl.o 2.版本2
obj=add.o sub.o mul.o devl.o
dest=libmath.a$(dest):$(obj)ar rcs $@ $^
%.o:%.cgcc -c $^.PHONY:clean
clean:rm -f $(obj)3.版本三:
src=$(wildcard *.c)
obj=$(patsubst %.c,%.o, $(src...
作为Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux系统中...
...
查找NMECTL,在后面追加参数-lnnz11 第一个是字母l,后面两个是数字1(如上),这俩有点变态...
保存退出后Retry
参考http://blog.itpub.net/29475508/viewspace-2120836/Linux7 64安装 oracle 11g Error in invoking target agent nmhs of makefile标签:style 11g gen strong oracl magent install home 查找 本文系统来源:https://www.cnblogs.com/ritchy/p/12055790.html
OS:Oracle Linux 7.2 64bitDB:Oracle 11.2.0.3%86时出现报错 Error in invoking target ‘agent nmhs‘ of makefile解决方案在makefile中添加链接libnnz11库的参数修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11建议修改前备份原始文件[oracle@ysserver ~]$ cd $ORACLE_HOME/sysman/lib[oracle@ysserver lib]$ cp ins_emagent.mk ins_emagent.mk.bak[oracle@ysserver...
【Oracle】Linux7安装11g 86%报错:Error in invoking target agent nmhs of makefileOS:Oracle Linux 7.2 64bit
DB:Oracle 11.2.0.3
%86时出现报错 Error in invoking target agent nmhs of makefile
解决方案
在makefile中添加链接libnnz11库的参数
修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11
建议修改前备份原始文件
[oracle@ysserver ~]$ cd $ORACLE_HOME/s...
make工具是Unix/Linux 的一个编译工具,它按照顺序读取 Makefile 或 makefile ,进行自动地有选择地执行编译链接,只对影响到的修改的文件进行重新编译,不需要对整个工程进行重新编译。而Makefile中些内容的就是它的编译方式。
Makefile 的格式:
目标项 依赖项列表 [target] : file1 file2 file3 ... 规则<tab>command1<tab>command2......
target是一个目标文件,也可以是Object File,也可以是执行...
makefile
makefile|Makefile
目标:依赖
tab键 规则命令版本一
app:main.c add.cgcc -o app -I./include main.c add.c 版本二
app: main.o add.ogcc -o app -I./include main.o add.o
main.o: main.cgcc -c main.c -I./include
add.o: add.cgcc -c add.c -I./include 终极版本
# 文件匹配
srcFiles=$(wildcard *.c)
# 内容替换
dstFiles=$(patsubst %.c,%.o,$(srcFiles))
# 自定义变量
objName=appall:$(objName) ...
转载自: https://www.latelee.org/compilelinking/Makefile-template.html许久以前,一直使用自己总结的Makefile模板,这个模板也是基于现有资料整理而成的。一、内容
Makefile完全内容如下:
# !!!=== cross compile...
CROSS_COMPILE ?= CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
AR = $(CROSS_COMPILE)arARFLAGS = -cr
RM = -rm -rf
MAKE = makeCFLAGS =
LDFLAGS =
DEFS =
LIBS =# !!!===
# target...
经过了几个月的咕咕咕实习后,俺胡汉三又回来啦!通过实际参与产品开发,确实体会到了一个嵌入式开发者想要做出一个好的系统是非常具有难度的,需要考虑的东西比较多,而这些都需要学习。而基本功是这些的基础。所以为了练成六脉神剑攀登更高的技术之峰,长期的学习是必不可少的!“GUN Compiler Collection”GCC编译器想必大家都有所耳闻,作为一个非常著名的编译器集,它可以在Linux环境下快速部署,并且提供了c,c++,java等语言的...