linux C学习笔记01--makefile

不知不觉毕业五年了,以前学的linux基本都忘了,重新温习起来吧!

下面是自己写的makefile文件,供新手和自己回头时查阅

CC=gcc
EXE=c.out
CCC=g++
EEE=cc.out
INC=/home/malth/project/include/
LIB=/home/malth/project/lib/
#添加文件搜索路经
vpath=/home/malth/project/lib
#vpath %.h ~/project/include
OUT=main.o bubbling_sort.o thread.o share_memory.o
CFILE=main.c bubbling_sort.c thread.c share_memory.c

ctest:$(OUT)
    @echo compiling start......
#命令前加 - 减号可以忽略命令执行错误的信息
#"@"符号可以隐藏命令,命令会执行但是不会显示命令本身

#调试发现用*.o文件做gcc -o 连接生成的可执行文件不能进行GDB调试顾增加了*.c文件直接生成供选择
#    $(CC) $(OUT) -static $(LIB)slib.a -lpthread -o $(EXE)
    $(CC) $(CFILE) -I$(INC) -static $(LIB)slib.a -lpthread -g -o $(EXE)
    @echo compile successed!
#    @-rm -f *.o

main.o:main.c
    $(CC) -I$(INC) -c -g main.c

common.o:common.c
    $(CC) -c -g common.c 

thread.o:thread.c
    $(CC) -c -g thread.c 

bubbling_sort.o:bubbling_sort.c
    $(CC) -c -g bubbling_sort.c

share_memory.o:share_memory.c
    $(CC) -c -g share_memory.c

cctest:test.cc
    -rm -f cc.out
    $(CCC) -o $(EEE) test.cc

######################################################
#create the static library
slib:static_lib.o
    ar -rcs slib.a static_lib.o
    mv -f slib.a $(LIB)

static_lib.o:static_lib.c
    $(CC) -c static_lib.c
######################################################

clean:
    -rm -f $(EXE) $(EEE) *.o
    ls

result=
result:=$(words hello world)

all:
    @echo -n "result is : "
    @echo $(result)
.PHONY:all
时间: 2024-08-04 17:05:53

linux C学习笔记01--makefile的相关文章

Linux CentOS学习笔记--01

公司现在要求学习Linux,现在才刚刚学了一些简单的命令,以后就要到51CTO看看了,书是看不进去了. 下面是学习笔记: 1,清屏命令 clear reset  是把屏目上的所有內容全部刪除 alias 設定別名  alias cl='clear'   直接用cl 2,切換用戶 su root   然后输入密码 3,设置系统主机名 hostname 主机名 hostname --> 显示主机名 4,关机.重起.注销 关机  init 0     shutdown -h now 重起  init

Linux 程序设计学习笔记----动手编写makefile文件

Befroe Beginning. 之前定了暑假的plan ,关于Linux的书籍现在在看的是ALP和Linux高级程序设计(杨宗德)第三版.在计划中的是Linux高级环境编程. 现在开始关于Linux程序设计的第一篇学习笔记. 本来打算把名字写成教程,不过觉得自己完全是新手在自学,还是写学习笔记比较负责和适合. 希望可以一起学习进步. 引入 首先我们假设这样一个场景.我们有一个程序包含了三个文件,分别是源码文件main_plus,c和function_plus.c以及头文件mydefine_p

Linux 我的第一个makefile(Linux指令学习笔记)

我的第一个makefile 最近学到了makefile的文件的编写.makefile是一个能达到方便编译链接生成目标程序的文件, make确实很方便,在写makefile的过程也能更好的理解gcc编译器执行生成可执行文件的全过程.这里是我 的第一个makefile的编写. makefile根据依赖,逐步解析生成目标文件. 首先指定all:ef  生成最终目标文件ef 生成ef的前提是依赖ef:total.o sum.o mul.o 依赖三个目标文件. 所以我们要另外指定gcc的执行 gcc -o

C++ GUI Qt4学习笔记01

C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概念:一个是“信号和槽”,另一个是“布局”. 窗口部件(widget)是用户界面的一个可视化元素,相当于windows系统中的“控件”和“容器”.任意窗口部件都可以用作窗口. 1.1Hello Qt 正确安装Qt4开发环境,创建工程目录hello,源代码文件名为hello.cpp,进入hello目录 (1

linux基础学习笔记——操作大全

作者:liaoyi 更新时间:2014-6-2 ****************基本操作***************** 关机 shutdown -h now    root用户               init 0              root用户halt      root+一般用户poweroff 重启shutdown -r now    root用户init6     root用户reboot            root+一般用户 注意:1.shutdown 比较灵活,可

[linux]awk 学习笔记

awk 学习笔记 最近添加了几个功能的日志,但是呢,这个日志就是输出,一般自己也发现不了问题,于是想写一些简单的监控脚本来看看日志的大致情况, 比如有没有error,每天有多少error报出来. 想到了以前运维的同时分享awk,于是想简单的学习下. 入门 最简单的输入某些列 使用$4 这种来表示 __$0__是输出整列 [root]/root/test$ps -ef|grep uwsgi|awk '{print $1,$5}' root Jul24 root Jul24 root Jul24 r

Linux 程序设计学习笔记----ANSI C 文件I/O管理

转载请注明出处:http://blog.csdn.net/suool/article/details/38129201 问题引入 文件的种类 根据数据存储的方式不同,可以将文件分为文本文件和二进制文件.具体的区别和关系如下: 文本文件与二进制文件在计算机文件系统中的物理存储都是二进制的,也就是在物理存储方面没有区别都是01码,这个没有异议,他们的区别主要在逻辑存储上,也就是编码上. 文本文件格式存储时是将值作为字符然后存入其字符编码的二进制,文本文件用'字符'作为单位来表示和存储数据,比如对于1

linux 驱动学习笔记01--Linux 内核的编译

由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make config(基于文本的最为传统的配置界面,不推荐使用)#make menuconfig(基于文本菜单的配置界面)#make xconfig(要求 QT 被安装)#make gconfig(要求 GTK+被安装)在配置 Linux 2.6 内核所使用的 make config. make menuconfig. mak

Linux程序设计学习笔记----网络通信编程API及其示例应用

转载请注明出处, http://blog.csdn.net/suool/article/details/38702855. BSD Socket 网络通信编程 BSD TCP 通信编程流程 图为面向连接的Socket通信的双方执行函数流程.使用TCP协议的通信双方实现数据通信的基本流程如下 建立连接的步骤 1.首先服务器端需要以下工作: (1)调用socket()函数,建立Socket对象,指定通信协议. (2)调用bind()函数,将创建的Socket对象与当前主机的某一个IP地址和TCP端口

【opengl 学习笔记01】HelloWorld示例

<<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比较踏实,哈哈. 我的主题是,好记性不如烂笔头. ================================================================ 1. 下载glut库 glut库地址为:www.opengl.org/resources/libraries/glut/glutdlls37beta.zip glut全称为:OpenGL Utilit