您的位置:首页 > Web前端

浅谈Scalable inference for Correlated Topic Models(ScaCTM)编译过程

2015-11-16 12:07 603 查看
注:本文用于记录本人编译ScaCTM过程中,出现的错误及解决方案。本人研一小硕,技术较渣,正在向一名合格程序员做转变,所以技术大牛如果看到这些问题是低级错误的话还望海涵,包容一下小弟学识浅显。

ScaCTM是清华大学朱军老师带领学生所开发的并发topic model系统。

系统code地址:https://github.com/cjf00000/ScaCTM

论文介绍:http://ml.cs.tsinghua.edu.cn/~scalable-ctm/scalable-ctm.pdf
在安装第三方库的时候,有些被墙了,所以用的离线安装,https://github.com/cjf00000/ScaCTM/issues/1

OS:ubuntu14.04

编译器准备:gcc 4.8,g++4.8,gfortran

1)make third_party过程中出现下图所示错误,经试验求证,最初缺少gfortran编译器,或修改third_party/third_party.mk文件的第304行,将它改为

./configure --disable-f77 --disable-fc --prefix=$(THIRD_PARTY); \

2)make third_party中还会遇到下图所示错误:

向上查找最终错误来源是:

./boost/atomic/atomic.hpp:202:16: error: ‘uintptr_t’ was not declared in this scope

./boost/atomic/atomic.hpp:202:25: error: template argument 1 is invalid

./boost/atomic/atomic.hpp:202:43: error: invalid type in declaration before ‘;’ token

uintptr_t表示64位整数(在64位机器上),而本机编译器不支持。到http://sourceforge.net/projects/boost/files/boost/1.59.0/下载一个最新的boost并替换boost_1_54_0.tar.bz2,同时修改third_party.make中boost编译版本号就可以了。至此,third_payty  make过程基本上通过。

最终结果如下图所示:

至此看到上如所示make结果,third_ party   编译过程应该已经完成了。

3)此时make src主程序。

首先make时会曝出语法错误,如图所示:

解决方案:在Unigram_Train_Data_Formatter.cc及Unigram_Test_Data_formatter.cc中增加include <iostream>此错误可以避免,至此编译可以通过,结果如下图所示:

整个系统编译过程完成,系统使用将在下次博文中进行介绍。

linux小渣,很多低级错误不知道什么原因,非常感谢HZ、BW的帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ScaCTM makefile mpi ubuntu