Linux C++ 学习备忘


问题:

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<退出>

相关内容