【发布时间】:2016-02-16 12:00:28
【问题描述】:
我从 github 克隆了某人的 c++ 代码,但未能成功。作者告诉我,他使用的gcc版本是4.8.4,可以成功运行。所以我使用brew install homebrew/versions/gcc48安装了gcc48,并在他的代码文件夹中的makefile中指定了gcc的版本。
但是在编译过程中出现错误:
g++-4.8 -c -pipe -O3 BurstyBTM.cpp -o BurstyBTM.o
BurstyBTM.cpp: In member function 'Pvec<double> BurstyBTM::compute_pz_b(Biterm&)':
BurstyBTM.cpp:129:23: error: could not convert 'pz.Pvec<T>::normalize<double>(0.0)' from 'void' to 'Pvec<double>'
return pz.normalize();
^
BurstyBTM.cpp: In member function 'void BurstyBTM::save_pz(std::string)':
BurstyBTM.cpp:158:41: error: conversion from 'void' to non-scalar type 'Pvec<double>' requested
Pvec<double> pz = nb_z.normalize(alpha);
^
BurstyBTM.cpp: In member function 'void BurstyBTM::save_pw_z(std::string)':
BurstyBTM.cpp:164:37: error: conversion from 'void' to non-scalar type 'Pmat<double>' requested
Pmat<double> pw_z = nwz.normr(beta);
^
make: *** [BurstyBTM.o] Error 1
我该如何安装 4.8.4 版本的 gcc?否则,我该如何处理这个问题?提前致谢!
【问题讨论】:
-
BurstyBTM.来自哪里? -
文件夹中有
BurstyBTM.oBurstyBTM.h和BurstyBTM.cpp -
你能把
ld: symbol(s) not found for architecture x86_64上面的错误行贴出来吗? -
@purplepsycho 我已经编辑了这个问题。