最近刚开始学习并发编程,学习到了PVM这一块。关于在linux系统中PVM的安装,真是要我的命,繁琐死了,最关键是我对linux也是刚开始学,还在继续学习《鸟哥的linux私房菜》一书。好了,我在这详细说说PVM的安装,和安装好PVM后,怎样去编译一个PVM程序。

一.PVM的安装

1、下载PVM软件包

根据需要及机器配置的不同,可以从http://www.netlib.org/pvm3/index.html 下载PVM软件包。我按转的是pvm3.4.6.tgz,系统是ubuntu12.04。

比如说你的PVM软件包下载到了~bokeyuan/downs/pvm3.4.6.tgz,然后你想把这个包放在/usr/local/src下面,那么按照下面的命令进行操作:

cp ~bokeyuan/downs/pvm3.4.6.tgz  /usr/local/src/

cd /usr/local/src

tar -zxvf ./pvm3.4.6.tgz

2、设置环境变量

PVM在启动和运行的过程中需要用到环境变量PVM_ROOT和PVM_ARCH。每个要用到PVM的用户都需要设置这两个环境变量。环境变量 PVM_ROOT的值为PVM软件包展开后根目录所在的位置,此处应该设为“/usr/local/src/pvm3”。环境变量PVM_ARCH的值标 明了主机所对应的体系结构,对于运行Linux操作系统的主机来说,该值即为“LINUX”。
(1)若使用的是bash,则为主机上所有用户添加这两个环境变量的方法是在/etc/bashrc文件中添加如下两行脚本(但是我在我的ubuntu中没有找到,我添加在~bokeyuan/.bashrc中了):
export PVM_ROOT=/usr/local/src/pvm3
export PVM_ARCH=LINUX

(2)若使用的是csh,则应该在/etc/csh.cshrc文件中添加如下两行脚本:
setenv PVM_ROOT /usr/local/src/pvm3
setenv PVM_ARCH LINUX

source /etc/bashrc(我的就是 source  ~bokeyuan/.bashrc)不要忘记执行这句话

3、编译PVM软件包

当设置的环境变量生效后,执行下面的命令来编译整个软件包:

$ cd /usr/local/src/pvm3
$ make(这里编译有可能有错误,认真看错误,是不是少按转什么东西,按照错误提示做就可以)

$ make install (好多帖子上没有这句话,我的要是没有这句话,就不可以)

好了,到此就可以编译你的pvm程序了。

二、编译PVM程序

代码部分就不说了,这里就说说怎么生成目标文件。比如我有一个文件名为pvmprogram.cc的程序,编译和链接指令为:

c++ -o  pvmprogram -I$PVM_ROOT/include pvmprogram.cc -L$PVM_ROOT/lib/$PVM_ARCH -lpvm3

这里需要注意-I和$PVM_ROOT之间是没有空格的,同样-L和$PVM_ROOT之间也没有空格。

PVM的安装和编译PVM程序的更多相关文章

  1. 4、树莓派的中文:安装ftp,安装gcc,安装qt,编译qt程序,运行qt界面程序

    本博文仅作本人操作过程的记录,留作备忘.自强不息 QQ1222698 1.安装FTP:sudo apt-get install vsftpd 2.配置FTP,修改,/etc/vsftpd.conf # ...

  2. 他山之石——vs2013 安装与部署及程序打包

    C#打包需要这个:InstallShield 2013 Limited Edition for Visual Studio  .下载地址: InstallShield 2013 Limited Edi ...

  3. windows平台下安装、编译、使用mongodb C++ driver

    本博客将记录在Win8.1 ,VS2013环境下编译.配置mongodb C++ driver的流程. 1.下载预备 下载Boost:http://sourceforge.net/projects/b ...

  4. 配置指定使用tcc编译器编译nim程序

    1.前言 nim是什么? nim是一门静态编译型语言,语法类似python,nim的代码被翻译成C代码再被C编译器编译成可执行文件.因此nim的可执行文件比较小,性能应该也不错. 最简单的nim程序就 ...

  5. eclipse安装反编译工具

    身为一名程序员来说,日常最常做的就是编写代码和查看别人写好的源代码了,有时候打开别人写的class文件发现根本不是自己想要的,所以给大家介绍一种eclipse中反编译class文件的工具. 第一步:下 ...

  6. [转]Caffe在Linux下的安装,编译,实验

    Caffe在Linux下的安装,编译,实验  原文地址:http://www.cnblogs.com/evansyang/p/6150118.html 第一部分:Caffe 简介 caffe是有伯克利 ...

  7. Linux - wxWidgets安装和编译HelloWorld

    安装参考http://codelite.org/LiteEditor/WxWidgets30Binaries#toc2 源 /etc/apt/source.list deb http://repos. ...

  8. WebStorm 8.0安装LESS编译环境的教程

    WebStorm是一个非常棒的Web前端开发编辑器,被程序猿们成为“最智能的JavaScript IDE”.对HTML5.Bootstrap框架.Node.js等都有完美支持.目前最新版本为WebSt ...

  9. Linux/Ubuntu下 静态编译Qt程序

    一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的.会提示缺少……库文件之类的错误.这就是动态编译的结果. 但是如果我们想编译一个程序 ...

随机推荐

  1. UVa1025 (DAG上的dp)

    这是紫书上的第一个dp哈. 1.状态定义:dp[i][j]---->到时刻i的时候(出发的时候时刻为0,约定时间为时刻time),从j号车站开往N号车站,在车站等待的最少的时间. 2.这个人当前 ...

  2. .Net程序员学用Oracle系列(10):系统函数(中)

    1.四大转换函数 1.1.TO_CHAR 1.2.TO_NUMBER 1.3.TO_DATE 1.4.CAST 2.两大近似值函数 2.1.ROUND 2.2.TRUNC 3.正则函数 3.1.正则函 ...

  3. 17、Map接口及其常用子类(Hashtable、HashMap、WeakHashMap)

    17.Map接口 Map没有继承Collection接口,Map提供key到value的映射.一个Map中不能包含相同的key,每个key只能映射一个value.Map接口提供3种集合的视图,Map的 ...

  4. Java Maps

    HashMap 是线程不安全的,主要对于写操作来说,两个以上线程同时写入Map会被互相覆盖.线程安全指的保证对同一个map的写入操作按照顺序进行,一次只能一个线程更改.比如向HashMap里put(k ...

  5. java面向对象--内部类

    将一个类定义在另一个类里面,里面的那个类称为内部类,与属性.方法等一样视作外部类的成员.内部类提供了更好的封装,不允许同包中的其他类访问该内部类. 内部类作为外部类的成员,同样可以被4个访问限定符修饰 ...

  6. 从插上网线到web页面请求,究竟发生了哪些过程?(计算机网络篇)

    一.说在前头 好久没有更新博客了,汗颜,最近忙于各种实验与报告,但是还是要抽时间总结一下学的东西.欢迎转载,但是要注明出处哦(=^ ^=). 最近学了计算机网络,正好总结一下.本篇博客的大部分是跟计算 ...

  7. nodejs服务实现反向代理,解决本地开发接口请求跨域问题

    前后端分离项目需要解决第一个问题就是,前端本地开发时如何解决通过ajax请求产生的跨域的问题.一般的做法是通过本地配置nginx反向代理进行处理的,除此之外,还可以通过nodejs来进行代理接口.当然 ...

  8. 如何通过JS实现简单抖动效果

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. Java静态代理与动态代理模式的实现

    前言:    在现实生活中,考虑以下的场景:小王打算要去租房,他相中了一个房子,准备去找房东洽谈相关事宜.但是房东他很忙,平时上班没时间,总找不到时间去找他,他也没办法.后来,房东想了一个办法,他找到 ...

  10. a标签点击之后有个虚线边框,怎么去掉

    1.行内处理方式1 <a hidefocus="true" href="#"></a> 2.行内处理方式2,让a标签获得焦点就失去焦点, ...