Hi Everyone.
Does anyone know how to use GTK+ on QNXRTP??
I am trying to set up environment for GTK+ to develop GUI for C application
on QNXRTP. After we installed GTK from a QNX web repository, (
http://www.nexwarecorp.com/repository/) and set it up,
we started creating some simple c programs but realized some problems.
AFter the source code is compiled, we receive such warning error:
#gcc helloworld.c -o helloworld gtk-config --cflags --libs
/usr/ntox86/bin/ld: warning: libc.so.1, needed by /usr/local/lib/libgtk.so,
may
conflict with libc.so.2
We found that the program we created is complied and sort of works, but
doesn’t do what it is supposed to do.
That means, for example, it won’t display the window title ( comes us "
untitled" ) or won’t do a specified event when button is clicked, etc. We
are wondering if this has to do with this warning error.
I checked where the libc.so.1 and libc.so.2 exist and they were both in
/x86/lib and /lib. But, as the current LD_LIBRARY_PATH is showing, it
should be only looking in /lib.
/x86/lib/libc.so.1
/x86/lib/libc.so.2
/lib/libc.so.1
/lib/libc.so.2
#echo $LD_LIBRARY_PATH
/usr/local/qt/lib:/usr/local/lib:/proc/boot:/lib:/usr/lib:/lib/dll:/usr/phot
on/l
ib:/usr/photon/dll:/usr/X11R6/lib:/opt/vame/ive/bin
The sample program source code used was the following, taken from
www.gtk.org.
/* example-start helloworld2 helloworld2.c */
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
/* Our new improved callback. The data passed to this function
- is printed to stdout. */
void callback( GtkWidget *widget,
gpointer data )
{
g_print (“Hello again - %s was pressed\n”, (char *) data);
}
/* another callback */
gint delete_event( GtkWidget *widget,
GdkEvent *event,
gpointer data )
{
gtk_main_quit();
return(FALSE);
}
int main( int argc,
char argv[] )
{
/ GtkWidget is the storage type for widgets */
GtkWidget *window;
GtkWidget *button;
GtkWidget *box1;
/* This is called in all GTK applications. Arguments are parsed
- from the command line and are returned to the application. */
gtk_init (&argc, &argv);
/* Create a new window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
/* This is a new call, which just sets the title of our
- new window to “Hello Buttons!” */
gtk_window_set_title (GTK_WINDOW (window), “Hello Buttons!”);
/* Here we just set a handler for delete_event that immediately
- exits GTK. */
gtk_signal_connect (GTK_OBJECT (window), “delete_event”,
GTK_SIGNAL_FUNC (delete_event), NULL);
/* Sets the border width of the window. */
gtk_container_set_border_width (GTK_CONTAINER (window), 5);
/* We create a box to pack widgets into. This is described in detail
- in the “packing” section. The box is not really visible, it
- is just used as a tool to arrange widgets. */
box1 = gtk_hbox_new(FALSE, 0);
/* Put the box into the main window. */
gtk_container_add (GTK_CONTAINER (window), box1);
/* Creates a new button with the label “Button 1”. */
button = gtk_button_new_with_label (“Button 1”);
/* Now when the button is clicked, we call the “callback” function
- with a pointer to “button 1” as its argument */
gtk_signal_connect (GTK_OBJECT (button), “clicked”,
GTK_SIGNAL_FUNC (callback), (gpointer) “button 1”);
/* Instead of gtk_container_add, we pack this button into the invisible
- box, which has been packed into the window. */
gtk_box_pack_start(GTK_BOX(box1), button, TRUE, TRUE, 0);
/* Always remember this step, this tells GTK that our preparation for
- this button is complete, and it can now be displayed. */
gtk_widget_show(button);
/* Do these same steps again to create a second button */
button = gtk_button_new_with_label (“Button 2”);
/* Call the same callback function with a different argument,
- passing a pointer to “button 2” instead. */
gtk_signal_connect (GTK_OBJECT (button), “clicked”,
GTK_SIGNAL_FUNC (callback), (gpointer) “button 2”);
gtk_box_pack_start(GTK_BOX(box1), button, TRUE, TRUE, 0);
/* The order in which we show the buttons is not really important, but I
- recommend showing the window last, so it all pops up at once. */
gtk_widget_show(button);
gtk_widget_show(box1);
gtk_widget_show (window);
/* Rest in gtk_main and wait for the fun to begin! */
gtk_main ();
return(0);
}
/* example-end */
Thanks so much for any help!!
Eri