OpenMotif fails to run
OpenMotif fails to run
- Subject: OpenMotif fails to run
- From: Tom Roberts <email@hidden>
- Date: Wed, 07 Sep 2016 16:37:40 -0500
- Organization: Muons, Inc.
This is Mac OS X 10.11.6 (El Capitan) with XQuartz 2.7.9. I
installed OpenMotif 2.3.4 using HomeBrew (so it's in /usr/local). I
have a very large program that uses Motif, which fails now, but
worked when built on Mavericks with an older XQuartz; I traced its
problem to Motif, and Motif's problem seems to be related to libXt.
I found a simple Motif example here (attached, after fixing two
trivial warnings in this old code)
https://www.cs.cf.ac.uk/Dave/X_lecture/node5.html
It builds in the usual way:
gcc -I/usr/local/include -I/opt/X11/include push.c
/usr/local/lib/libXm.dylib \
/opt/X11/lib/libXt.dylib
But it does not run, with an error similar to my large program:
a.out
Error: attempt to add non-widget child "dsm" to parent "a.out"
which supports only widgets
BTW I have also seen these error messages from my large program when
trying different combinations:
Error: Couldn't find per display information
Warning: XmManager ClassInitialize: XmeTraitSet failed
Error: attempt to add non-widget child "DropSiteManager" to parent
"main" which \
supports only widgets
_XmGetDefaultDisplay cannot be used prior to VendorS.Initialize,
returns NULL
(I believe this last is from incorrectly linking libXt
before libXm.)
In desperation I went back to the old versions of libXm and libXt
(that work in my large program, built on Mavericks and runs now on
El Capitan; libXm.2.dylib came from its bundle):
gcc -I/usr/local/include -I/opt/X11/include push.c
/usr/local/lib/libXm.2.dylib \
/opt/X11/lib/libXt.6.dylib
a.out
Warning: Cannot find callback list in XtAddCallback
A window pops up with the push button, but pushing the button does
not print the message (as the warning suggests). That's why I
suspect the problem is in XQuartz and not OpenMotif. (It's possible
my large program does not use this feature of libXt.)
Help, please!
(I also have an inquiry in homebrew-discuss with subject "openmotif
fails to run".)
|
#include <Xm/Xm.h>
#include <Xm/PushB.h>
/* Prototype Callback function */
void pushed_fn(Widget , void * , void *);
int main(int argc, char **argv)
{ Widget top_wid, button;
XtAppContext app;
top_wid = XtVaAppInitialize(&app, "Push", NULL, 0,
&argc, argv, NULL, NULL);
button = XmCreatePushButton(top_wid, "Push_me", NULL, 0);
/* tell Xt to manage button */
XtManageChild(button);
/* attach fn to widget */
XtAddCallback(button, XmNactivateCallback, pushed_fn, NULL);
XtRealizeWidget(top_wid); /* display widget hierarchy */
XtAppMainLoop(app); /* enter processing loop */
}
void pushed_fn(Widget w, void * client_data, void *cbs)
{
printf("Don't Push Me!!\n");
}
_______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list (email@hidden)
This email sent to email@hidden