首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

AIX开发环境引见

2012-07-29 
AIX开发环境介绍如需要选择安装部分文件集,可在_all_latest菜单项下按F4键,使用F7键选择要安装的文件集,按

AIX开发环境介绍

如需要选择安装部分文件集,可在_all_latest菜单项下按F4键,使用F7键选择要安装的文件集,按回车键即可。

上面介绍的是是一种完整的安装方式,如果只是使用C/C++的编译器,不许要安装Visual Age C++的图形界面,可借助于下面的命令:

installp -aXgd /dev/cd0 vacpp.cmp

这条命令的运行结果是安装我们需要的所有文件集。

配置Visual Age C++

正确安装完Visual Age C++以后,还不能立刻使用,需要配置使用许可才可以正确使用。Visual Age C++的使用许可通过LUM(License Use Management)系统管理,所以正确的配置方法是先配置LUM服务器,再配置Visual Age C++的使用许可。

第一步:配置LUM

LUM在AIX 4.3.3及5L版本中是一个必须的部件,系统的初始安装过程中已经安装,但是并没有配置,使用i4cfg命令配置,如下:

# cd /usr/opt/ifor/bin
# ./i4cfg -a n -S a

这条命令将配置LUM成为并发的节点锁定服务器工作方式(Concurrent Nodelock Server),如果没有错误输出,下一步是启动LUM服务器:

# ./i4cfg -start

之后,可以用以下命令检测LUM服务器的工作状态:

# ./i4cfg -list

将显示为:

AIX开发环境引见

第二步:配置Visual Age C++的使用许可

正确安装Visual Age C++产品以后,可以在/usr/vac和/usr/vacpp两个目录下看到后缀为lic的文件,这些文件记载了Visual Age C++的使用许可协议,需要做的就是将需要的许可协议添加到LUM的管理中。使用的命令为i4blt,使用方法为:

i4blt -a -f license_file_name -R u -T license_num

具体过程如下:
首先添加C的使用许可,
#cd /usr/opt/ifor/bin
#./i4blt -a -f /usr/vac/cforaix_cn.lic -R u -T 10
然后再配置C++的使用许可,
#./i4blt -a -f /usr/vacpp/vacpp_cn.lic -R u -T 10

在上面的例子中配置的许可数为10,正确的配置完后可通过如下命令验证许可数是否正确或许可协议有没有正确的被添加,

i4blt -sl cn

注意以上的配置是在AIX 5L版本上进行的,如在AIX 4.3.3版本上,则i4cfg、i4blt命令存在/var/ifor/bin目录下。

?

Visual Age C++的使用

安装、配置以后,可以使用C/C++编译器了,但当你运行cc时却发现,cc没有找到,不必怀疑安装的正确性,这是没有设置环境变量的缘故,在/usr/vac/bin目录下有一个脚本文件replaceCSET,它会完成这一切。

可以用一个经典的小程序hello.c来测试一下编译器的正确性,程序内容如下:

#include <stdio.h>
main() {
printf("Hello!\n");
}

编译、连接:

cc -o hello hello.c

将生成hello可执行程序。

一般情况下,我们习惯直接使用cc编译程序,实际上AIX的C/C++编译器还提供了其他的使用方法,如后缀为_r就有xlc_r、xlC_r,这里我们做一个完整的介绍。

AIX平台上缺省的C++编译器为xlC,而C的编译器有三个:

cc: 这是最习惯用的,扩展模式的C编译器
xlc: ANSI C编译器,使用UNIX的头文件
c89: ANSI C编译器,使用ANSI头文件

具体选择何种编译器,需根据程序的情况来选择,一般我们可以使用cc。另外,还有一些后缀供我们选择,结合以上的基本编译器,给我们提供了更大的选择范围,如下:

_r连接UNIX98标准线程库_r4连接POSIX Draft4(DCE)标准线程库_r7连接POSIX Draft7标准线程库128Double型类型为128位并使用连接相关的库128_rDouble类型为128位并使用UNIX98线程库128_r4Double类型为128为并使用连接POSIX Draft4线程库128_r7Double类型为128位并使用连接POSIX Draft7线程库

另外,UNIX98已经兼容涵盖了UNIX95、POSIX标准的内容,所以,如果程序中使用到线程函数,只许增加后缀_r就可以了。举例说,编译连接ANSI C并使用POSIX线程库,可以使用xlc_r编译器,当然也可以使用xlc -lpthread的形式。

这里提到的只是最基本的东西,还有很多方面的内容并没有介绍到,例如如何生成使用动态库,这些更详细的东西需要参考相关的手册,或拨打IBM技术支持电话寻求技术支持。

?

程序调试

调试程序比较复杂,一方面需要我们借助一些调试工具,如dbx 、truss、tprof等,另一方面也需要我们具有一些调试经验。

这里介绍一个用dbx调试运行中的程序的方法,重点在于调试步骤,而不在于dbx工具的使用,以一个简单的程序为例,程序为:

#include <stdio.h>
main() {
long count=0;
int loop_count;

while(1) {
count *= (count++);
printf(" Test debug, count : %ld\n", count);
for (loop_count = 0; loop_count < 10; loop_count++) {
sleep(1);
}
}
}

程序名为dbg.c

调试步骤如下:
1) 编译dbg.c
xlc -g -o dbg dbg.c

2) 运行dgb程序
./dbg

3) 查看dbg程序的进程ID
ps -ef | grep dbg | grep -v grep
假设dbg的PID为12345

4) 调试dbg程序
dbx -a 12345

5) 这时我们运行dbx的命令调试dbg程序了,下面是几个常用的命令:
step : 单步运行
stop at line_number : 在某一行设置断点
stop in subroutine_name: 设置断点到某一个函数
cont : 继续运行

6) 退出调试

注意退出时应使用detach而不是exit,否则会影响程序的运行,导致程序退出。

这篇文章只是简单介绍AIX的开发环境,实际工作中用到的内容将远远不止这些知识,需要开发者查阅大量的相关资料,或访问以下网址:

http://www-900.ibm.com/developerWorks/cn/index.shtml

热点排行
Bad Request.