嵌入式Linux编译器gcc使用
At first, GCC is used for GNU C Compiler. At present,it supports JAVA Ada C++ and so on.
GCC编译流程分为:
1.Pre-Processing(预处理)
gcc -E -o hello.i hello.c
选项-E 使得编译器在预处理结束时停止编译
选项-o 指定GCC的输出结果
.i/.ii 经过预处理的C/C++源程序
2.Compiling(编译)
gcc -S -o hello.s hello.i
选项-S 使得编译器在编译结束,进行汇编之前停止编译
.s 汇编语言源程序
3.Assembling (汇编)
gcc -c hello.s hello.o
选项-c 汇编阶段将汇编代码转为二进制目标代码
4.Linking(链接)
gcc hello.o -o hello
将程序中用到的库函数如printf的实现从默认的路径"/usr/lib/libc.so.6"链接过来
现在即可运行可执行文件hello
GCC警告提示:
1.Wall类警告提示
占GCC警告选项90%以上,建议使用选项-Wall,即打开所有警告:
gcc -Wall wrong.c -o wrong
2.非Wall类警告提示
"-ansi" 强制GCC生成的标准语法所要求的告警信息,并不保证所有没有警告的程序都是符合ANSI C标准
”-pedantic“ 允许发出ANSI C标准所列的全部警告信息,保证所有没有警告的程序都是符合ANSI C标准
gcc -pedantic wrong.c -o wrong
GCC使用库函数
Linux中有3种库函数形式:
1.静态 后缀为.a
静态库的代码在编译时就已经连接到应用程序中
2.共享 后缀为.so和版本号
在程序开始运行时才载入
3.动态 后缀为.so和版本号
在程序中的语句需要使用该函数时才调用,调用结束后释放动态库所占内存
动态库和共享库只包含对库函数的引用,代码规模较小
Linux系统所用的库都放在 /usr/lib 和 /lib 目录下
库文件的路径通常不在系统默认路径下,则需要使用调用路径选项来指定相关库文件的位置
1. ” -I dir &
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
Linux要安装mssql扩展,必须首先安装freetds,安装过程如下:
1、假设源文件目录为/webServ,安装目录为/opt/freetds。
1) >cd /webServ
2) 下载, >wget ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
3) 解压, >tar -zxvf freetds-stable.tgz
4) 进入, >cd freetds-0。 ......
RPM有5种基本操作模式(不包括软件包建构):安装、删除、升级、查询和校验。
RPM包的名称格式,eg:caleng-1.0-1.i386.rpm。该文件名包括软件包名称“caleng”;软件版本号“1.0“,其中包括主版本号和次版本号;"i386"是软件所运行的硬件平台。
1、安装RPM包,eg: $>rpm -ivh test.rp ......
原文地址:http://www.wangzhongyuan.com/archives/488.html
以下是一个Linux/Unix下由两个管道提供双向数据流的C程序,这是操作系统课程中经常使用的基本程序
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <string.h>
int m ......
改目标:用自定义的ppm图片替代/drivers/video/logo/logo_linux_clut224.ppm
同时删除logo_linux_clut224.c logo_linux_clut224.o文件这样才能使编译的使用logo_linux_clut224.ppm重新编译
ppm图片的生成:
# pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm
# pnmquant 224 logo_linux_clut224.pnm > ......