Create C++ routines in windows

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
prasson_ibm
Premium Member
Premium Member
Posts: 536
Joined: Thu Oct 11, 2007 1:48 am
Location: Bangalore

Create C++ routines in windows

Post by prasson_ibm »

Hi All,

I have installed datastage 7.5 in my laptop and also installed .net 2003.Here i have created c++ routines and i want to call it in transformer.For that i need to generate object file.But i dont know how to create that object file in windows.

Can anyone help me.


Thanks
prasson_ibm
Premium Member
Premium Member
Posts: 536
Joined: Thu Oct 11, 2007 1:48 am
Location: Bangalore

Post by prasson_ibm »

Hi,

Can anyone help me in this topic..??
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Windows or UNIX, doesn't really matter, the compiler would function the same way in either environment. I don't know the gory details, but an exact search for object file returned 130 matches, something in there should help answer your question.
-craig

"You can never have too many knives" -- Logan Nine Fingers
varunndschange
Participant
Posts: 4
Joined: Mon Jul 05, 2010 1:21 am

Post by varunndschange »

thanks for your detailed sincere explanation and patience, it is really useful :D
Varun Negi
Assistant System Enginner
TCS
prasson_ibm
Premium Member
Premium Member
Posts: 536
Joined: Thu Oct 11, 2007 1:48 am
Location: Bangalore

Post by prasson_ibm »

Hi
With the help of mike's post i an finally able to complile the routine,but its not working properly in transformer.
my code is :-

Code: Select all

#include<conio.h>
#include<stdlib.h>
int sum(int a,int b)
{
int c;
c=a+b;
return c;
}
When i am compiling its giving following warning :-
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\stdlib.h(185) : warning C4005: 'errno' : macro redefinition
C:\Program Files\MKS Toolkit\include\nutc\errno.h(32) : see previous definition of 'errno'c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\stdlib.h(428) : warning C4005: 'sys_errlist' : macro redefinition
Object file is created & i copied this file to C:\Ascential\DataStage\PXEngine\lib path but while calling the routine in Transformer its giving below error message:-

Code: Select all

##I TOSH 000002 22:55:21(001) <main_program> orchgeneral: loaded
##I TOSH 000002 22:55:21(002) <main_program> orchsort: loaded
##I TOSH 000002 22:55:21(003) <main_program> orchstats: loaded
##W TFPA 000012 22:55:21(006) <main_program> Warning: the PWD environment variable is not defined. Remote process startup may be unsuccessful as a result.If your ORCHESTRATE job does not start up correctly, please set your PWD variable to a value that will work on all nodes of your system.
##E TBLD 000000 22:55:24(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 40192
##E TFSR 000019 22:55:24(001) <main_program> Could not check all operators because of previous error(s)
##W TFCP 000000 22:55:24(002) <transform> Error when checking composite operator:  The number of reject datasets "0"is less than the number of input datasets "1".
##I TBLD 000000 22:55:24(003) <main_program> Error when checking composite operator: Output from subprocess: C:\Ascential\DataStage\Projects\Training\RT_BP94.O\V0S1_Test_Routine_Transformer_1.C(237) : warning C4244: '=' : conversion from 'APT_Int64' to 'int', possible loss of data

##I TFCP 000008 22:55:24(004) <transform> Error when checking composite operator: cxx    -LC:/Ascential/DataStage/Projects/Training/RT_BP94.O/ -LC:/Ascential/DataStage/PXEngine/lib -LC:/Ascential/DataStage/PXEngine/user_lib -W/TP -W/dll -W/base:0x50000000 -lliborchnt -lliborchcorent -lliborchbuildopnt C:\Ascential\DataStage\PXEngine\lib\SUM.o C:/Ascential/DataStage/Projects/Training/RT_BP94.O/V0S1_Test_Routine_Transformer_1.tmp.o -o C:/Ascential/DataStage/Projects/Training/RT_BP94.O/V0S1_Test_Routine_Transformer_1.dll
##I TBLD 000000 22:55:24(005) <main_program> Error when checking composite operator: Output from subprocess: LINK : warning LNK4224: /DEBUGTYPE:BOTH is no longer supported;  ignored
LINK : fatal error LNK1181: cannot open input file 'C:AscentialDataStagePXEnginelibSUM.o'

##E TCOS 000029 22:55:24(006) <main_program> Creation of step finished with status = FAILED (Test_Routine.Transformer_1)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S1_repos_Transformer_1 transform operator.
0003: //
0004: 
0005: // define external functions used
0006: extern int32 sum(int32 A,int32 B);
0007: 
0008: // define our input/output link names
0009: inputname 0 DSLink3;
0010: outputname 0 DSLink4;
0011: 
0012: initialize {
0013: 	// define our row rejected variable
0014: 	int8 RowRejected0;
0015: 
0016: 	// define our null set variable
0017: 	int8 NullSetVar0;
0018: 
0019: }
0020: 
0021: mainloop {
0022: 	// initialise our row rejected variable
0023: 	RowRejected0 = 1;
0024: 
0025: 	// evaluate columns (no constraints) for link: DSLink4
0026: 	DSLink4.A = sum(DSLink3.A , DSLink3.B);
0027: 	writerecord 0;
0028: 	RowRejected0 = 0;
0029: }
0030: 
0031: finish {
0032: }
0033: 
*** End of Internal Generated Transformer Code
I cant understand what is issue now.

Can anyone help me.

Thanks
prasson_ibm
Premium Member
Premium Member
Posts: 536
Joined: Thu Oct 11, 2007 1:48 am
Location: Bangalore

Post by prasson_ibm »

Hi All,

Can anyone help me to resovle above mentioned issue.....
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

1. Is the same macro defined in both your header files? If so you'll need to figure out a way around that.

2. Set PWD to a single dot (current working directory).

3. The "number of datasets" error is sometimes spuriously thrown when the compiler license has expired. This is something else you might check.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Post Reply