您查看的文章来源于http://www.oklinux.cn
问题:
Linux下的C 用的是标准的C 库吗?
Linux下用的是标准C 库
附:SuSE Linux 使用的C 编译器为g (gcc)
IBM_AIX Unix 使用的C 编译器为cc
Sun Unix 使用的C 编译器为CC
C 在Linux下的系统调用是C语言编写的API吗?
C语言编写的API,好像没用这种说法!~!改成库更了一些,C 是兼容C的,库也不例外
在Linux下有没有类似MFC的基础类库?
Linux下没有这个类库!
如果上面三个问题中1和2是肯定的,3是否定的,个人认为VC,MFC可以不用看了!Linux/unix 如果不使用中间件(类似MFC的东东)或一些API,如SQLAPI; 一般为纯C/C 编程。
开始:
1、编译C-“Hello world!”
#include
void main()
{
printf(”Hello, world!\n”);
}
存盘为hello.c
在命令行下输入:g hello.c -o hello (注意大小写)
执行./hello
Hello world!
2、编译C -“Hello world!”
#include
using namespace std;
int main()
{
cout << “Hello world!” << endl;
return 0;
}
此时要用g 编译C 程序
g hello.cpp -o hello
3、编译类
有三个文件:Hello.h、Hello.cpp、MyFirst.cpp,内容如下:
file://Hello.h
#ifndef HelloH
#define HelloH
class Hello
{
Hello();
void Display();
}
file://Hello.cpp
#include “Hello.h”
#include
Hello::Hello()
{
}
Hello::Display()
{
cout << “Hello world!” << endl;
}
file://MyFirst.cpp
#include
#include “Hello.cpp”
int main()
{
Hello theHello;
theHello->Display();
return 0;
}
编译:g MyFirst.cpp -o MyFirst
4、多文件编译链接
gcc有-c参数可以只编译不链接
因此上面那个程序可以按如下顺序编译
g -c hello.cpp -o hello.o
g -c MyFirst.cpp -o MyFirst.o
g MyFirst.o hello.o -o MyFirst
当然还有更简单的方法:g hello.cpp MyFirst.cpp -o MyFirst.cpp
一个项目经常有数百个源程序,这样连接肯定累死了,
可以将上述编译过程写为以下一个文本文件
Linux下称为makefile
# 这儿可以文件说明
MyFirst : MyFirst.o hello.o
g MyFirst.o hello.o -o MyFirst
hello.o : hello.cpp
g -c hello.cpp -o hello.o
MyFirst.o : MyFirst.cpp
g -c MyFirst.cpp -o MyFirst.o
存盘为MyFirst
在命令模式下:make MyFirst
2、调试
gdb ./文件名
以下为调试状态下的可能用到的命令(可仅输入第一个字符,如:break简写为b),尖括
号中为说明
list <显示源代码>
break 行号<设置断点>
run<运行程序>
continue<继续从断点处运行>
print 变量<调试时查看变量的值>
del 行号<删除断点>
step<单步执行,可跟踪到函数内部>
next<单步执行,不跟踪到函数内部>
quit<退出>