Я клонировал чей-то код C++ из github, но не смог его выполнить. Автор сказал мне, что версия gcc, которую он использовал, - 4.8.4, и он мог успешно запустить ее. Поэтому я установил gcc48 с помощью brew install homebrew/versions/gcc48
и задал версию gcc
в makefile
, помещенную в его папку с кодом.Как установить gcc -4.8.4 с помощью homebrew в os x 10.10
Однако, ошибка есть во время компиляции:
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 конкретно? В противном случае, как я могу справиться с этой проблемой? Заранее спасибо!
Где 'BurstyBTM.' приходят из ? – purplepsycho
В папке «BurstyBTM.h» и «BurstyBTM.cpp» есть «BurstyBTM.h» и «BurstyBTM.cpp». –
Можете ли вы разместить строки ошибок, которые над символом ld: не найдены для архитектуры x86_64'? – purplepsycho