XForms: Weird error!

From: Robin (robin.4@osu.edu)
Date: Fri Nov 24 2000 - 00:57:27 EST

  • Next message: Robin: "XForms: How to insert a jpeg file to the canvas ??"

    Hi all,

         I encountered a really weird error.
         It will be great if someone can give an answer to it.

         I wrote Xform program before and it compiles fine in my machine --
    sgi.
         However this Xform program gave me the following error:

    "d32: ERROR 33 : Unresolved text symbol "fl_initialize" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "fl_show_form" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "fl_do_forms" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "fl_activate_glcanvas" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glClearColor" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glViewport" -- 1st referenced
    by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glMatrixMode" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glLoadIdentity" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "gluOrtho2D" -- 1st referenced
    by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glClear" -- 1st referenced by
    getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glPointSize" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glBegin" -- 1st referenced by
    getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glColor3f" -- 1st referenced
    by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glVertex2f" -- 1st referenced
    by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glEnd" -- 1st referenced by
    getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "fl_get_canvas_id" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "glXSwapBuffers" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "fl_bgn_form" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "fl_add_button" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "fl_set_object_callback" --
    1st referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "fl_add_glcanvas" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved text symbol "fl_end_form" -- 1st
    referenced by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    ld32: ERROR 33 : Unresolved data symbol "fl_display" -- 1st referenced
    by getFlesh.o.
            Use linker option -v to see when and which objects, archives and
    dsos are loaded.
    "

    The file that I work on is the attached file.

    Thanks in advance~

    --Rob


    #include <math.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <fstream.h>
    #include <iostream.h>
    #include <stdlib.h>
    #include <X11/Xlib.h>
    #include <X11/Xutil.h>
    #include <GL/glx.h>
    #include <GL/glu.h>
    #include <GL/gl.h>
    #include <unistd.h>
    #include <ctype.h>
    #include "/usr/people/robin/src/C++/Xforms/forms.h"

    // Global variables
    void * vptr = NULL;
    struct RobPoint{ int x; int y; };
    int num_points = 0;
    RobPoint points[10000];

    int canvas_width = 320, canvas_height = 240;
    int button_height = canvas_height / 5;
    int button_width = 100;
    int form_width, form_height;

    FL_FORM* getFleshForm;
    FL_OBJECT* load_obj;
    FL_OBJECT* redraw_obj;
    FL_OBJECT* remove_obj;
    FL_OBJECT* clear_obj;
    FL_OBJECT* quit_obj;
    FL_OBJECT* pt_canvas_obj;

    Window tmpWin;
    XEvent* ev;

    char input_file[100];
    char output_file[100];

    // global procedures =========
    void redraw();
    void makeForm();
    bool Is_In_Points (RobPoint* points, int x, int y);

    // CALLBACK =========
    void redraw_callback(FL_OBJECT* obj, long user_data){}
    void remove_callback(FL_OBJECT* obj, long user_data){}
    void clear_callback(FL_OBJECT* obj, long user_data){}
    void quit_callback(FL_OBJECT* obj, long user_data){}
    void load_callback(FL_OBJECT* obj, long user_data){}
    // ==================

    void main(int argc, char** argv){
      
      // initialize
      fl_initialize(&argc, argv, "Rob's getFlesh", 0, 0);

      // build the form
      makeForm();
      
      fl_show_form(getFleshForm, FL_PLACE_SIZE, FL_FULLBORDER, "getPoints");
      
      fl_do_forms();

    }

    void redraw(){
      
      fl_activate_glcanvas(pt_canvas_obj);
      
      glClearColor(0,0,0,0);
      glViewport(0,0,canvas_width,canvas_height);
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
      gluOrtho2D(0,canvas_width,canvas_height,0);
      glClear(GL_COLOR_BUFFER_BIT);
      int i;
      for(i=0;i<num_points;i++){
        
        glPointSize(5);
        glBegin(GL_POINTS);
        glColor3f(0.0, 0.0, 1.0);
        glVertex2f(points[i].x, points[i].y);
        glEnd();
      }
      
      glXSwapBuffers(fl_display, fl_get_canvas_id(pt_canvas_obj));
      
    }

    void makeForm(){
      
      // define the form
      getFleshForm = fl_bgn_form(FL_UP_BOX, canvas_width+button_width, canvas_height);
      load_obj = fl_add_button (FL_NORMAL_BUTTON, canvas_width, 0,
                                button_width, button_height, "LOAD");
      fl_set_object_callback (load_obj, load_callback, 0);
      
      redraw_obj = fl_add_button (FL_NORMAL_BUTTON, canvas_width, button_height,
                                  button_width, button_height, "Redraw");
      fl_set_object_callback (redraw_obj, redraw_callback, 0);
      
      
      remove_obj = fl_add_button (FL_NORMAL_BUTTON, canvas_width,
                                  2*button_height, button_width,
                                  button_height, "Remove");
      fl_set_object_callback (remove_obj, remove_callback, 0);
      
      clear_obj = fl_add_button (FL_NORMAL_BUTTON, canvas_width,
                                 3*button_height, button_width,
                                 button_height, "Clear");
      
      fl_set_object_callback (clear_obj, clear_callback, 0);
      
      quit_obj = fl_add_button (FL_NORMAL_BUTTON, canvas_width,
                                4*button_height, button_width,
                                button_height, "Quit");
      fl_set_object_callback (quit_obj, quit_callback, 0);
      
      pt_canvas_obj = fl_add_glcanvas(FL_NORMAL_CANVAS,0,0,canvas_width,
                                      canvas_height,"Points");
      
      // fl_add_canvas_handler (pt_canvas_obj, ButtonPress, pt_canvas_button_handler, vptr);
      
      //fl_add_canvas_handler(pt_canvas_obj, Expose, pt_canvas_expose_handler, vptr);
      
      fl_end_form();
      
    }

    int pt_canvas_button_handler(FL_OBJECT *ob, Window win, int w, int h,
                                 XEvent *ev, void *d){
      return 0;
    }

    _________________________________________________
    To unsubscribe, send the message "unsubscribe" to
    xforms-request@bob.usuhs.mil or see
    http://bob.usuhs.mil/mailserv/xforms.html
    XForms Home Page: http://world.std.com/~xforms
    List Archive: http://bob.usuhs.mil/mailserv/list-archives/



    This archive was generated by hypermail 2b29 : Fri Nov 24 2000 - 00:59:31 EST