`
byf157
  • 浏览: 203237 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

AIX开发环境介绍

阅读更多
AIX开发环境介绍
 
 
 

随着IBM pSeries服务器市场占有率的不断增加,AIX操作系统也为越来越多的IT业者所喜爱。AIX作为UNIX家族中出色的一员,有着丰富的开发环境,AIX最新的版本为AIX 5L版本2,最常见的版本为4.3.3,以5L版本为例,缺省安装直接支持J2EE,这里主要介绍AIX系统的C/C++开发部分。

首先应当清楚,AIX并不集成C/C++,要使用这部分功能,必须安装IBM C或者Visual Age C++(包含C编译器),这篇文章只介绍Visual Age C++,将按照Visual Age C++的安装、配置、编译器的使用、程序调试的顺序介绍,使用的平台为AIX 5L。

安装Visual Age C++

Visual Age C++要在AIX 5L上使用,最低的版本为5.0.2,最新的版本为6.0。Visual Age C++是一个功能强大的集成开发环境,和Windows平台的Visual C++一样,从项目的管理、编辑、编译、调试等各方面,提供一系列完善的图形化的操作界面。要完全安装(包含IDE图形界面)Visual Age C++,可遵循以下步骤:

1) 确定IDE图形界面需要的Motif文件集已经安装,命令如下:
lslpp -l X11.compat.adt.Motif12
如没有安装,应先从AIX操作系统安装介质安装这一文件集。

2) 将Visual Age C++的安装介质放入机器的光驱中
注意,如果是Visual Age C++的产品盘,并不需要mount CD盘

3) 开始安装Visual Age C++文件集,命令如下:smitty install_latest
安装目录选择光区,使用F4键选择,如下,
回车后将显示如下界面:

如需要选择安装部分文件集,可在_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

将显示为:

第二步:配置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标准线程库
128
Double型类型为128位并使用连接相关的库
128_r
Double类型为128位并使用UNIX98线程库
128_r4
Double类型为128为并使用连接POSIX Draft4线程库
128_r7
Double类型为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

分享到:
评论

相关推荐

    AIX上部署开发环境

    AIX上部署开发环境

    AIX基本环境搭建.doc

    Discuz论坛AIX环境配置 主机系统:AIX5.3 数据库:Mysql5 WEB服务:Apache2+PHP5 准备: gcc V4.0.0 for AIX V5.3 (gcc-4.0.0-1.aix5.3.ppc.rpm) gcc-c++ V4.0.0 for AIX V5.3 (gcc-cplusplus-4.0.0-1.aix5.3.ppc.rpm) ...

    IBM AIX6.1环境下安装、卸载Java JRE、SDK

    IBM AIX6.1环境下安装、卸载Java JRE、SDK,配置用户环境变量,搭建Java开发、运行环境。

    AIX-SHELL基本编程

    帮你快速了解aix环境下的shell开发基本知识

    Oracle大型数据库系统在AIXUNIX上的实战详解.part1

    以其他UNIX系统为参照,描述了数据库系统Oracle 10g、Oracle 11g的构架方法,说明了该数据库在AIX平台常用的管理内容,提供了AIX上实施Oracle集群的环境要素和实施方法,分析了服务器综合容灾的工程手段和技术方法,...

    AIX6.1环境下WAS7.0安装配置步骤[汇编].pdf

    AIX6.1环境下WAS7.0安装配置步骤[汇编].pdf

    IBM PowerHA for AIX(HACMP)全力保护关键业务不受中断

    十多年来,通过开发IBM磁盘存储解决方案套件,为核心数据业务弹性奠定基础,PowerHA for AIX解决方案始终提供可靠的监控、故障检测和业务应用环境向备份资源的自动恢复。IBM开发人员开展发明、部署、集成并测试活动...

    IBM PowerHA新功能介绍

    十多年来,通过开发IBM磁盘存储解决方案套件,为核心数据业务弹性奠定基础,PowerHA for AIX解决方案始终提供可靠的监控、故障检测和业务应用环境向备份资源的自动恢复。IBM开发人员进行了一系列开发、部署、集成和...

    IBM AIX6.1工作负载分区与Podcast脚本

    Podcast 专门为您提供...,WPAR 当然可以在其中运行不同级别的应用程序,并且如果您在测试开发类型的组织中,或者您需要非常快速地安装不同级别的应用程序,并且需要在该 WPAR 环境中进行安装和调试,它就会派上用场。

    IBM AIX memory leak detector-开源

    AIXmem是检测IBM AIX C开发环境中的内存泄漏的工具。 AIX“用户定义的Malloc替换”用于跟踪内存分配和释放。 -&gt;不幸的是,我没有时间从中做出一些有用的事情。 :( &lt;-

    新一代测试环境ORACLE数据库管理工具的设计与实现毕业论文

    测试环境处共承接新老系统,包括开发、组件组装、应用组装、 版本检验、推广测试在内的环境多达十几套,每个系统的每套环境基 本上都需要有 oracle 数据库,这些数据库服务搭建在 PC、小型机两 种硬件环境,Redhat ...

    node-v6.9.0-aix-ppc64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

    node-v6.9.3-aix-ppc64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

    node-v6.9.2-aix-ppc64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

    node-v6.11.2-aix-ppc64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

    node-v6.9.5-aix-ppc64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

    node-v6.9.4-aix-ppc64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

    node-v6.8.1-aix-ppc64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

    node-v6.8.0-aix-ppc64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

    node-v6.17.1-aix-ppc64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

Global site tag (gtag.js) - Google Analytics