can't run the graphlab helloworld even the needed libraries are already installed

User 633 | 8/30/2014, 9:42:22 PM

I am new to graphlab and now configuring and compiling all the needed libraries to build the hello world example.

The libraries I have built are libevent 2.2.0 , libboost.1.55.0, libjson, zookeeper-3.4.6, I am using the QT to make the application. I have configure / make / make install all the libraries , and link them to QT through the configuration file.

INCLUDEPATH += /usr/local/include \ /opt/openmpi/include \ /opt/libevent/include \ /home/dada/Downloads/libjson \ /home/opt/zookeeper/include \

LIBS += -L/usr/local/lib \ -lboostsystem \ -lboostcontext \ -lboostfilesystem \ -lboostdatetime \ -lboostiostreams \ -lboostprogramoptions \ -lgraphlab \ -L/opt/openmpi/lib \ -lmpi \ -lmpicxx \ -L/opt/libevent/lib \ -levent \ -leventpthreads \ -L/home/dada/Downloads/libjson \ -ljson \ -L/home/opt/zookeeper/lib \ -lzookeepermt \ -lzookeeperst \

The example file is simply

include <QCoreApplication>

include <math.h>

include <iostream>

include <string>

include <graphlab.hpp>

include "mpi.h"

using namespace std;

struct webpage { std::string pagename; double pagerank; webpage():pagerank(0.0) { } explicit webpage(std::string name):pagename(name),pagerank(0.0){ } void save(graphlab::oarchive& oarc) const { oarc << pagename << pagerank; } void load(graphlab::iarchive& iarc) { iarc >> pagename >> pagerank; } }; typedef graphlab::distributedgraph<webpage, graphlab::empty> graphtype;

int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); cout << "hello world "<<endl; graphlab::mpitools::init(argc, argv); graphlab::distributedcontrol dc; dc.cout() << "Hello World!\n"; graphlab::mpi_tools::finalize(); return a.exec(); }

Having included all the libraries to the QT project path, but the problem is some libraries seem not linked to the project.

For example, there are three libraries not well linked. 1. /home/dada/graphlab/src/graphlab/parallel/fibercontrol.cpp:349: error: undefined reference to `jumpfcontext', the problem comes from the source code.

boost::context::jumpfcontext(&t->basecontext, t->curfiber->context, t->curfiber->initialtrampolineargs);

but obviously boost:context library is included to the path. I don't figure out how the project doesn't find the boost:context library.

  1. /home/dada/graphlab/src/graphlab/rpc/dctcpcomm.cpp:260: error: undefined reference to `gleventfree', the second error is coming from dctcpcomm.cpp, but no idea which library is missing ?

  2. /usr/local/lib/libeventpthreads.so:-1: error: undefined reference to `eventmmfree', the third error comes from libevent_pthreads.so, but I also link the libevent library to the project. Have no idea why the project doesn't find the libevent

Can anyone give some tips?

Comments

User 6 | 8/31/2014, 3:52:18 PM

Hi I guess you are using http://qt-project.org/ ? We do not support this configuration. Obviously some shared files are missing and you will need to debug your setup. May I ask why are you using QT , which applications of GraphLab are you interested in and which operatring system are you running on?