Open Izikiel opened 11 years ago
Si debería ser lo mismo para Debian. De hecho yo lo estoy compilando en Debian 7.0.
Algunas preguntas: Que debian estás usando? 32 o 64 bits? Las librerias precompiladas que están en el repo son para 32 bits Exactamente que dice el mensaje el error?
Me parece que la versión 3.0 de freeling no depende de libmorfo con lo cual no se genera el archivo libmorfo.a. Capaz que vasta con quitar las referencias a esa lib en el proyecto. (Por cuestiones historicas yo estoy usando la versión 2.2.2)
Estoy usando crunchbang de 64 bits, que es un debian tuneado. Yo probe originalmente recompilar Freeling 2.2, pero me aparecieron diferentes errores, y en la pagina de Freeling decían que habian solucionado eso para 3.0. No me acuerdo el especifico del error. Ahora despues de tocar un poco el Makefile me tira errores relativos a un namespace maco de freeling, con el archivo freelinglemmatizer.o
Si compilar freeling 2.2 es bastante complicado, requiere configurar muchas cosas.
Por favor, cuando reportes errores se lo más especifico posible. Si hay mensajes de error, copialos y pegalos. Que dice exactamente el mensaje de error ahora?
El mensaje:
g++ -m64 -Wl,-O1 -o chatbot main.o random.o settings.o csvdocument.o csvrow.o conversation.o conversationwriter.o conversationreader.o logger.o json.o crashhandler.o defaultsanitizer.o lemmatizerfactory.o sanitizerfactory.o enginefactory.o cb2engine.o tree.o globaltools.o scoringalgorithm.o matchpolicy.o condoutput.o condoutputlist.o variable.o varstack.o parser.o freelinglemmatizer.o appfacade.o rule.o chatbotrulesfile.o aiadapter.o rloghelper.o accountverifier.o chatbotfactory.o chatbottempfile.o mainwindow.o ruletreemodel.o ruletreeview.o ruleoutputwidget.o ruleinputwidget.o testconversationwidget.o portdialog.o exportdialog.o importdialog.o rosterwidget.o autocompletetextedit.o chathistorywidget.o linefilteredit.o ruletextview.o scorewidget.o tinyscorewidget.o detailsdialog.o optionswindow.o welcomewidget.o mainwindowrefactor.o sendscoredialog.o newupdatedialog.o testinputtext.o ruleeditwidget.o connectionwidget.o uploaderprogressdialog.o accountverifwidget.o historyhelper.o xmppchatbot.o fbchatbot.o gtalkchatbot.o chatbot.o chatcorpus.o fbownmessageextension.o cipher.o keymanagerfactory.o statsmanager.o history.o securestatsfile.o historystatshelper.o remoteloggerfactory.o rest.o userauth.o updater.o datauploaderfactory.o moc_settings.o moc_appfacade.o moc_accountverifier.o moc_mainwindow.o moc_ruletreemodel.o moc_ruletreeview.o moc_ruleoutputwidget.o moc_ruleinputwidget.o moc_testconversationwidget.o moc_portdialog.o moc_exportdialog.o moc_importdialog.o moc_rosterwidget.o moc_autocompletetextedit.o moc_chathistorywidget.o moc_linefilteredit.o moc_ruletextview.o moc_scorewidget.o moc_tinyscorewidget.o moc_detailsdialog.o moc_welcomewidget.o moc_optionswindow.o moc_sendscoredialog.o moc_newupdatedialog.o moc_updateexecutor.o moc_testinputtext.o moc_ruleeditwidget.o moc_connectionwidget.o moc_uploaderprogressdialog.o moc_accountverifwidget.o moc_xmppchatbot.o moc_chatbot.o moc_fbchatbot.o moc_fbownmessageextension.o moc_statsmanager.o moc_rest.o moc_userauth.o moc_updater.o moc_contestdatauploader.o moc_nullcontestdatauploader.o qrc_gnome_theme.o qrc_certs.o -L/usr/lib/x86_64-linux-gnu -L/home/izikiel/chatbot/src/chatbot/../third-party/QXmpp/lib -lqxmpp -L/usr/local/lib -L/home/izikiel/chatbot/src/chatbot/../third-party/Freeling/lib -lfreeling -lfries -lomlet -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread
freelinglemmatizer.o: In function (anonymous namespace)::init(maco**, QHash<int, std::string> const&)': freelinglemmatizer.cpp:(.text+0x398): undefined reference to
maco_options::maco_options(std::string const&)'
freelinglemmatizer.cpp:(.text+0x3f1): undefined reference to maco_options::set_active_modules(bool, bool, bool, bool, bool, bool, bool, bool, int, bool)' freelinglemmatizer.cpp:(.text+0x4dd): undefined reference to
maco_options::set_data_files(std::string const&, std::string const&, std::string const&, std::string const&, std::string const&, std::string const&, std::string const&, std::string const&)'
freelinglemmatizer.cpp:(.text+0x7af): undefined reference to maco::maco(maco_options const&)' freelinglemmatizer.o: In function
Lvk::Nlp::FreelingLemmatizer::FreelingLemmatizer()':
freelinglemmatizer.cpp:(.text+0x1e98): undefined reference to tokenizer::tokenizer(std::string const&)' freelinglemmatizer.cpp:(.text+0x1f20): undefined reference to
splitter::splitter(std::string const&)'
freelinglemmatizer.o: In function Lvk::Nlp::FreelingLemmatizer::tokenize(QString const&, QStringList&)': freelinglemmatizer.cpp:(.text+0x37fe): undefined reference to
tokenizer::tokenize(std::string const&, std::list<word, std::allocatorLvk::Nlp::FreelingLemmatizer::lemmatize(QString const&, QList<Lvk::Nlp::Word>&)': freelinglemmatizer.cpp:(.text+0x4522): undefined reference to
tokenizer::tokenize(std::string const&, std::list<word, std::allocatorsplitter::split(std::list<word, std::allocator<word> > const&, bool, std::list<sentence, std::allocator<sentence> >&)' freelinglemmatizer.cpp:(.text+0x4599): undefined reference to
maco::analyze(std::list<sentence, std::allocatorLvk::Nlp::FreelingLemmatizer::~FreelingLemmatizer()': freelinglemmatizer.cpp:(.text+0x5939): undefined reference to
maco::~maco()'
collect2: error: ld returned 1 exit status
make: *\ [chatbot] Error 1
La compilación pasó OK. Pero falló el linker. Los simbolos que no está resolviendo son todos de Freeling. Con lo cual es un problema en tu lib de Freeling. Asegurate de que estés linkeando contra la que compilaste vos y no la que trae el proyecto.
Segun lo que me pegaste esta linkeando contra:
-L/usr/local/lib -L/home/izikiel/chatbot/src/chatbot/../third-party/Freeling/lib -lfreeling -lfries -lomlet -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread
Si estás linkeando contra el archivo correcto. Capaz que estás compilando Freeling con algun flag que lo hace incompatible con el proyecto de Qt.
Ok, gracias, ahi lo miro.
Buenas, estoy tratanto de compilar el chatbot en debian, que deberia ser lo mismo para ubuntu. Cuando lo compilo, tira error de que libfries.a, libomlet.a, y libmorfo.a son incompatibles, y cancela la compilacion. Probe recompilar todas las librerias, pero luego tira un error de que no encuentra varias cosas de qxmpp, libreria que ya tengo instalada. otra cosa, como hicieron para compilar libmorfo? Yo checkoutee la ultima version de freeling, la compile, y genero una libfreeling.a, pero ninguna libmorfo.a Si tienen alguna idea de como lograr compilar el chatbot, les agradeceria que me la comenten. Un saludo