libDAI编译错误

时间:2015-06-08 08:02:21

标签: c++ linux matlab compiler-errors

我尝试在我的ubuntu 14.04LTS系统上安装libDAI(离散近似推理方法的免费/开源C ++库)时遇到编译错误。我从github克隆了repo,为我的系统编辑了makefile(只有更改是我的matlab目录)并运行make,这会遇到此错误 -

  

/ usr / bin / ld:找不到-lboost_program_options-mt

这是在完成所有相关安装后

  

apt-get install g ++ make doxygen graphviz libboost-dev   libboost-graph-dev libboost-program-options-dev libboost-test-dev   libgmp-dev cimg-dev

以及在黑暗中拍摄

  

sudo apt-get install libboost-all-dev

和另一个显然适用于其他人的事情

  

sudo apt-get libboost-program-options-dev

这给我一个错误(E:无效的操作libboost-program-options-dev)

如果没有这个lib,我似乎无法进步,所以我在墙上

基于

的预感
  

/ sbin / ldconfig -p | grep libboost_program

我决定取出makefile中的-mt部分,留下

  

BOOSTLIBS_PO = -lboost_program_options(而不是...... options-mt)

现在我

  

make / usr / local / MATLAB / R2015a / bin / mex -Iinclude CXX #g ++   CXXFLAGS#' - Wno-deprecated -Wall -W -Wextra -fpic' -largeArrayDims   -DDAI_WITH_BP -DDAI_WITH_FBP -DDAI_WITH_TRWBP -DDAI_WITH_MF -DDAI_WITH_HAK -DDAI_WITH_LC -DDAI_WITH_TREEEP -DDAI_WITH_JTREE -DDAI_WITH_MR -DDAI_WITH_GIBBS -DDAI_WITH_CBP -DDAI_WITH_DECMAP -lgmpxx -lgmp -output MATLAB / dai.mexa64 SRC / MATLAB / dai.cpp SRC / MATLAB / matlab.cpp SRC /graph.cpp src / dag.cpp src / bipgraph.cpp   src / varset.cpp src / daialg.cpp src / alldai.cpp src / clustergraph.cpp   src / factor.cpp src / factorgraph.cpp src / properties.cpp   src / regiongraph.cpp src / util.cpp src / weightedgraph.cpp   src / exceptions.cpp src / exactinf.cpp src / evidence.cpp src / emalg.cpp   src / io.cpp src / bp.cpp src / fbp.cpp src / trwbp.cpp src / mf.cpp src / hak.cpp   src / lc.cpp src / treeep.cpp src / jtree.cpp src / mr.cpp src / gibbs.cpp   src / bbp.cpp src / cbp.cpp src / bp_dual.cpp src / decmap.cpp   /home/jeremy/jeremy.rutman@gmail.com/techdev/Research/clothes   特别/时尚达/ fashionista_v0.2 / LIB / libdai / libdaigit / libDAI / CXX#克++   未找到;检查您是否在正确的当前文件夹中,然后检查   的拼写   '/home/jeremy/jeremy.rutman@gmail.com/techdev/Research/clothes   特别/时尚达/ fashionista_v0.2 / LIB / libdai / libdaigit / libDAI / CXX#克++”。

makefile具有以下内容

# MATLAB
# MatLab version 7.3 (R2006b) or newer?
NEW_MATLAB=true
# Replace the following by the directory where MatLab has been installed
MATLABDIR=/usr/local/MATLAB/R2015a
#echo $MATLABDIR
# The following should resolve to the MatLab mex compile command
MEX=$(MATLABDIR)/bin/mex
# Specify the C++ compiler and flags for MEX
#MEXFLAGS:='g++' 
MEXFLAGS:=CXX\#$(CC) CXXFLAGS\#'$(CCFLAGS)'

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我认为_mt后缀(用于多线程)是过去的事情。您必须查看您的软件包存储库(apt-cache search <name>,尝试boost作为<name>),以确定是否仍有包含mt或{{1}的软件包名称}。如果没有,您将不得不更改DAI的源代码以寻找合适的库。