If your code compiles but has an issue in linking (which is what your first message indicated), the error is in the linking phase, not the compiling phase and you do not need to include more files... you need to link against additional code (extra .o's) as
mentioned in my previous email.

-E.


priyanshu patra wrote:
Sir, Workflow::read is declared inside Workflow.cpp which is present in the library- airavata folder itself. But "Workflow.h" is not include in "Airavata.h" (I'm not entirely sure, but I guess that might be a reason for the error). I tried adding "*#include "Workflow.h"* " but I got a series of error similar to this:

../lib/airavata/Workflow.h:36:31: error: ‘::Workflow’ has not been declared virtual void getWorkflow( ::Workflow& _return, const std::string& workflowTemplateId) = 0;
                               ^
../lib/airavata/Workflow.h:38:62: error: ‘Workflow’ in namespace ‘::’ does not name a type virtual void registerWorkflow(std::string& _return, const ::Workflow& workflow) = 0;
                          ^
../lib/airavata/Workflow.h:38:74: error: ISO C++ forbids declaration of ‘workflow’ with no type [-fpermissive] virtual void registerWorkflow(std::string& _return, const ::Workflow& workflow) = 0;


On Sat, Jun 6, 2015 at 4:56 PM, Emre Brookes <[email protected] <mailto:[email protected]>> wrote:

    Does any one know where:
    `Workflow::read(apache::thrift::protocol::TProtocol*)'
    is defined ?

    This seems to me to be thrift generated cpp from a Airavata
    Workflow class... but I'm guessing.

    -Emre



    Emre Brookes wrote:

        All,

        Does anyone have a complete set of libraries required to link
        apache thrift to airavata cpp ?

        Priyanshu,

        Undefined reference generally means some library or other
        source file is missing from the compile line.
        This may help you think through it (not an exact fit, but
        similar)
        
http://stackoverflow.com/questions/10636536/error-linking-thrift-server-c

        Thanks,
        Emre

        priyanshu patra wrote:

            Hi all,

            I'm using the following command to compile a cpp file with
            airavata and thrift libraries of 0.15-release-version.
            *g++
            
-I/home/priyanshu-sekhar/gsoc/new_airavata/new_genapp/genapp/languages/qt4/util/lib/
            -L/usr/local/lib -w -Wno-write-strings -DHAVE_CONFIG_H
-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H -I/usr/local/include `pkg-config --cflags glib-2.0`
            Register.cpp `pkg-config --libs glib-2.0` -o Register
            -lthrift *

            This is the error that I'm getting. How do I fix this?
            /tmp/ccFRo65D.o: In function
            
`apache::airavata::api::Airavata_getWorkflow_result::read(apache::thrift::protocol::TProtocol*)':
            Register.cpp:(.text+0x4c196): undefined reference to
            `Workflow::read(apache::thrift::protocol::TProtocol*)'
            /tmp/ccFRo65D.o: In function
            
`apache::airavata::api::Airavata_getWorkflow_result::write(apache::thrift::protocol::TProtocol*)
            const':
            Register.cpp:(.text+0x4c36d): undefined reference to
            `Workflow::write(apache::thrift::protocol::TProtocol*) const'
            /tmp/ccFRo65D.o: In function
            
`apache::airavata::api::Airavata_getWorkflow_presult::read(apache::thrift::protocol::TProtocol*)':
            Register.cpp:(.text+0x4c572): undefined reference to
            `Workflow::read(apache::thrift::protocol::TProtocol*)'
            /tmp/ccFRo65D.o: In function
            
`apache::airavata::api::Airavata_registerWorkflow_args::read(apache::thrift::protocol::TProtocol*)':
            Register.cpp:(.text+0x4cef6): undefined reference to
            `Workflow::read(apache::thrift::protocol::TProtocol*)'
            /tmp/ccFRo65D.o: In function
            
`apache::airavata::api::Airavata_registerWorkflow_args::write(apache::thrift::protocol::TProtocol*)
            const':
            Register.cpp:(.text+0x4d0ad): undefined reference to
            `Workflow::write(apache::thrift::protocol::TProtocol*) const'
            /tmp/ccFRo65D.o: In function
            
`apache::airavata::api::Airavata_registerWorkflow_pargs::write(apache::thrift::protocol::TProtocol*)
            const':
            Register.cpp:(.text+0x4d189): undefined reference to
            `Workflow::write(apache::thrift::protocol::TProtocol*) const'
            /tmp/ccFRo65D.o: In function
            
`apache::airavata::api::Airavata_updateWorkflow_args::read(apache::thrift::protocol::TProtocol*)':
            Register.cpp:(.text+0x4d86e): undefined reference to
            `Workflow::read(apache::thrift::protocol::TProtocol*)'
            /tmp/ccFRo65D.o: In function
            
`apache::airavata::api::Airavata_updateWorkflow_args::write(apache::thrift::protocol::TProtocol*)
            const':
            Register.cpp:(.text+0x4da25): undefined reference to
            `Workflow::write(apache::thrift::protocol::TProtocol*) const'
            /tmp/ccFRo65D.o: In function
            
`apache::airavata::api::Airavata_updateWorkflow_pargs::write(apache::thrift::protocol::TProtocol*)
            const':
            Register.cpp:(.text+0x4db01): undefined reference to
            `Workflow::write(apache::thrift::protocol::TProtocol*) const'

            Regards,
            Priyanshu





Reply via email to