Tôi chỉ muốn chia sẻ làm thế nào tôi tìm thấy giải pháp cho lỗiKhông thủ tục lớp nhận ra định nghĩa
Không thủ tục lớp nhận ra định nghĩa
khi chạy một/Motif C ứng dụng X. Tôi đăng bài này bởi vì tôi chỉ tìm thấy một tham chiếu đến vấn đề này trong khi tìm kiếm trực tuyến, và nó không chứa các giải pháp.
tôi quản lý để giải quyết vấn đề và muốn chia sẻ những phát hiện của tôi nếu bạn gặp vấn đề này một lần nữa (Chú ý: Tôi không nói rằng giải pháp của tôi sẽ luôn giải quyết kiểu này lỗi).
Vấn đề
tôi thấy vấn đề này trong khi chạy một chương trình C đơn giản mà sử dụng bộ công cụ Motif và X Intrinsics.
$ gcc -Wall -c push.c
$ gcc -Wall -o push push.o -lXt -lXm
$ ./push
Error: No realize class procedure defined
Mã nguồn C là như sau:
#include <stdio.h>
#include <Xm/Xm.h>
#include <Xm/PushB.h>
/* Prototype Callback function */
void pushed_fn(Widget, XtPointer, XmPushButtonCallbackStruct *);
int main(int argc, char **argv)
{
Widget top_wid, button;
XtAppContext app;
Display* display;
XtToolkitInitialize();
app = XtCreateApplicationContext();
display = XtOpenDisplay(app, "localhost:10.0","push","push", NULL,0, &argc,argv);
top_wid = XtAppCreateShell(NULL, "Form", applicationShellWidgetClass, display, NULL, 0);
button = XmCreatePushButton(top_wid, "Push_me", NULL, 0);
/* tell Xt to manage button */
XtManageChild(button);
/* attach fn to widget */
XtAddCallback(button, XmNactivateCallback, (XtCallbackProc) pushed_fn, NULL);
XtRealizeWidget(top_wid); /* display widget hierarchy */
XtAppMainLoop(app); /* enter processing loop */
return 0;
}
void pushed_fn(Widget w, XtPointer client_data, XmPushButtonCallbackStruct *cbs)
{
printf("Don't Push Me!!\n");
}
Mặc dù tôi không thể đưa tham chiếu chính xác đến hướng dẫn lập trình X11/Motif, tôi khá chắc chắn nhiều hướng dẫn/hướng dẫn đặt thẳng: 'lXm' phải được liên kết trước' lXt' và 'lX11'. Ít nhất, * LessTif * FAQ có [chú thích] tương ứng (http://lesstif.sourceforge.net/FAQ.html#QU3.0). Xem thêm Debian này [bug report] (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718691) (có rất nhiều chúng). – Bass