Path: utzoo!utgpu!watmath!att!tut.cis.ohio-state.edu!bloom-beacon!athena.mit.edu!jstravis From: jstravis@athena.mit.edu (John S. Travis) Newsgroups: comp.windows.x Subject: Linking Libraries/Undefined variables Summary: HELP!!! Message-ID: <13489@bloom-beacon.MIT.EDU> Date: 14 Aug 89 22:58:42 GMT References: <12086@orstcs.CS.ORST.EDU> Sender: daemon@bloom-beacon.MIT.EDU Reply-To: jstravis@athena.mit.edu (John S. Travis) Organization: Massachusetts Institute of Technology Lines: 122 Once again I cry for help: 1)why does the order of linking libraries affect stuff? I changed the places of Xw and Xt on young's oneline textwidget and got this. (compile calls the gnu cc). w20-575-59% compile oneline.c -lXt -lXw -lX11 -g Undefined: _XtDestroyGC _XtGetGC _tempnam w20-575-59% compile oneline.c -lXw -lXt -lX11 -g Undefined: _tempnam And why on this short program do I have trouble, whereas when i compile the larger draw(modified) program of his I can -lXt -lXw -X11 and not have XtGetGC & XtDestroyGC undefined??(I actually use them in the draw program, but not in oneline.c) --------------------------------------------- 2)What the heck is tempnam????!!! I have fgrep almost every file I can think of for it and it is NOWHERE! I'll include the code below. But, I'm going crazy trying to eliminate this error. (Probably a real stupid mistake...but TELL me I can take it.Thanks) john travis jstravis@athena.mit.edu ---------------------------code cut here--------------------------- /************************************************* * oneline.c : Create a single line editable field *************************************************/ #include #include #include #include #define FONTHEIGHT(f) ((f)->max_bounds.ascent + \ (f)->max_bounds.descent) Widget create_one_line_text_widget(); main(argc,argv) int argc; char *argv[]; { Widget toplevel; Arg wargs[1]; toplevel = XtInitialize(argv[0],"Edit",NULL,0,&argc,argv); XtSetArg(wargs[0],XtNeditType,XwtextEdit); create_one_line_text_widget("edit",toplevel,wargs,1); XtRealizeWidget(toplevel); XtMainLoop(); } /* * just ring the terminal bell */ static void beep(w,event,params, num_params) Widget w; XEvent *event; String *params; int num_params; { XBell(XtDisplay(w),100); } /* * associate the action beep with the function */ static XtActionsRec actionsTable [] ={ {"beep",beep}, }; /* *override all translations that enter a newline. */ static char defaultTranslations[] = "CtrlO: beep() \n\ CtrlM: beep() \n\ Return: beep()"; Widget create_one_line_text_widget(name,parent,args, nargs) char *name; Widget parent; Arg args[]; int nargs; { XFontStruct *font; Widget w; Arg wargs[1]; XtTranslations trans_table; /* * Add the actions and compile the translations */ XtAddActions(actionsTable,XtNumber(actionsTable)); trans_table = XtParseTranslationTable(defaultTranslations); /* * Create a textEdit widget */ w = XtCreateManagedWidget(name, XwtexteditWidgetClass,parent,args,nargs); /* * install our tranlstions */ XtOverrideTranslations(w,trans_table); /* *get the font used by the widget */ XtSetArg(wargs[0],XtNfont,&font); XtGetValues(w,wargs,1); /* * set the widget height according to the font height */ XtSetArg(wargs[0],XtNheight,FONTHEIGHT(font) + 6); XtSetValues(w,wargs,1); return(w); }