我尝试在我的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)'
答案 0 :(得分:1)
MEXFLAGS:=CXX=$(CC) CXXFLAGS='$(CCFLAGS)'
答案 1 :(得分:0)
我认为_mt
后缀(用于多线程)是过去的事情。您必须查看您的软件包存储库(apt-cache search <name>
,尝试boost
作为<name>
),以确定是否仍有包含mt
或{{1}的软件包名称}。如果没有,您将不得不更改DAI的源代码以寻找合适的库。