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