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
Create C++ routines in windows
Moderators: chulett, rschirm, roy
-
- Premium Member
- Posts: 536
- Joined: Thu Oct 11, 2007 1:48 am
- Location: Bangalore
-
- Premium Member
- Posts: 536
- Joined: Thu Oct 11, 2007 1:48 am
- Location: Bangalore
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
"You can never have too many knives" -- Logan Nine Fingers
-
- Participant
- Posts: 4
- Joined: Mon Jul 05, 2010 1:21 am
-
- Premium Member
- Posts: 536
- Joined: Thu Oct 11, 2007 1:48 am
- Location: Bangalore
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 :-
When i am compiling its giving following warning :-
I cant understand what is issue now.
Can anyone help me.
Thanks
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;
}
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:-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
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
Can anyone help me.
Thanks
-
- Premium Member
- Posts: 536
- Joined: Thu Oct 11, 2007 1:48 am
- Location: Bangalore
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact:
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.
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.
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.