我从github克隆了某人的c ++代码但未能成功。作者告诉我他使用的gcc版本是4.8.4,他可以成功运行它。所以我使用brew install homebrew/versions/gcc48
安装了gcc48,并在其代码文件夹中的gcc
中指定了makefile
的版本。
但是,在编译期间出现错误:
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?否则,我该如何处理这个问题?提前谢谢!
答案 0 :(得分:0)
您尝试使用C编译器而不是C ++编译代码。
在make文件中,替换
CC=gcc-4.8
通过
CC=g++-4.8
如果您没有安装g ++,请使用
进行安装brew install gcc48 --enable-cxx