最近刚开始学习并发编程,学习到了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. Python 基本数据类型_常用功能整理

    一.字符串 字符串 s ="axle" #去两端空格 s.split() #以什么开头 s.startswith("a") #查找子序列,"12&qu ...

  2. java关键字transient与volatile小结

    本文转自:http://heaven-arch.iteye.com/blog/1160693 transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶 ...

  3. java 上传3(uploadify中文api)

    jquery文件上传控件 Uploadify 基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,fla ...

  4. servlet多线程

    一,servlet容器如何同时处理多个请求. Servlet采用多线程来处理多个请求同时访问,Servelet容器维护了一个线程池来服务请求.线程池实际上是等待执行代码的一组线程叫做工作者线程(Wor ...

  5. javaWeb学习总结(8)- JSP属性范围(5)

    所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以访问的保存范围. 一.JSP属性范围 JSP中提供了四种属性范围,四种属性范围分别指以下四种: 当前页:一个属性只能在一个页面中取得 ...

  6. 《一起》Alpha版软件使用说明

    1.引言 1.1编写目的 本手册是软件工程概论团队项目<一起>的Alpha版使用说明,面向的对象群体为全校师生. 1.2项目背景 本项目由<软件工程概论>课程需求创建,软件由S ...

  7. 修改node来增加自定义工具命令

    如何通过node创建自定义cmd命令 一.命令功能的实现 1.将自己的自定义工具的文件夹放到当前使用的 node 的安装目录下的 node_modules 文件夹下面: 2.回到node安装目录下复制 ...

  8. js 实现倒计时效果

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

  9. windows7 64bit下mvn命令后提示‘cmd’不是内部或外部命令,也不是可执行程序或批处理文件

    首先,开命令提示符,输入如下命令试试echo %M2_HOME% 回车如果显示的路径和安装路径一致说明配置没问题; 那么出现这个问题的原因可能就是路径问题,可能是你安装了某个软件更改了系统映射路径导致 ...

  10. javascript中的window.open()被浏览器拦截

    最近做项目的时候,点击事件的时候遇到了window .open()被浏览器拦截的情况,虽然在自己的开发环境中都能正常使用,但是放在测试环境中window.open()就是不能使用, 后来经过测试,单纯 ...