[Xcb] want to compile an example code.
Alan Coopersmith
alan.coopersmith at oracle.com
Mon Oct 5 18:58:00 UTC 2020
That program compiles fine for me here.
What does the pkg-config command print if you just run:
pkg-config --cflags --libs xcb
For me, it prints -lxcb, which should cause the compiler to link with the XCB
library that defines those functions.
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Engineering - https://blogs.oracle.com/alanc
On 10/5/20 6:23 AM, Hans Schüren wrote:
> Thank you Alan , i have tried it.
>
> Please look at this session.
> I have chosen the very simple example from the XCB Manual : could not stop
> additional compiling errors.
>
> =================================================================================
>
> #include <unistd.h> /* pause() */
>
> #include <xcb/xcb.h>
>
> int
> main ()
> {
> xcb_connection_t *c;
> xcb_screen_t *screen;
> xcb_window_t win;
>
> /* Open the connection to the X server */
> c = xcb_connect (NULL, NULL);
>
> /* Get the first screen */
> screen = xcb_setup_roots_iterator (xcb_get_setup (c)).data;
>
> /* Ask for our window's Id */
> win = xcb_generate_id(c);
>
> /* Create the window */
> xcb_create_window (c, /* Connection */
> XCB_COPY_FROM_PARENT, /* depth (same as root)*/
> win, /* window Id */
> screen->root, /* parent window */
> 0, 0, /* x, y */
> 150, 150, /* width, height */
> 10, /* border_width */
> XCB_WINDOW_CLASS_INPUT_OUTPUT, /* class */
> screen->root_visual, /* visual */
> 0, NULL); /* masks, not used yet */
>
> /* Map the window on the screen */
> xcb_map_window (c, win);
>
> /* Make sure commands are sent before we pause, so window is shown */
> xcb_flush (c);
>
> pause (); /* hold client until Ctrl-C */
>
> return 0;
> }
>
> =================================================================================
>
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> nomad at NomadBSD ~/programmieren> ls
> barchart.c include stdlibh.txt* includestdlibh.c Motif/
> windowexample.c xcbsample.c
> nomad at NomadBSD ~/programmieren> cc -Wall windowexample.c -o windowexample
> $(pkg-config --cflags --libs xcb) -I/usr/local/include/
> fish: $(...) is not supported. In fish, please use '(pkg-config)'.
> cc -Wall windowexample.c -o windowexample $(pkg-config --cflags --libs xcb)
> -I/usr/local/include/
> ^
> nomad at NomadBSD ~/programmieren> cc -Wall windowexample.c -o windowexample
> '(pkg-config --cflags --libs xcb)' -I/usr/local/include/
> cc: error: no such file or directory: '(pkg-config --cflags --libs xcb)'
> nomad at NomadBSD ~/programmieren [1]> cc -Wall windowexample.c -o windowexample
> (pkg-config --cflags --libs xcb) -I/usr/local/include/
> ld: error: undefined symbol: xcb_connect
> >>> referenced by windowexample.c
> >>> /tmp/windowexample-2f744c.o:(main)
> ld: error: undefined symbol: xcb_get_setup
> >>> referenced by windowexample.c
> >>> /tmp/windowexample-2f744c.o:(main)
> ld: error: undefined symbol: xcb_setup_roots_iterator
> >>> referenced by windowexample.c
> >>> /tmp/windowexample-2f744c.o:(main)
> ld: error: undefined symbol: xcb_generate_id
> >>> referenced by windowexample.c
> >>> /tmp/windowexample-2f744c.o:(main)
> ld: error: undefined symbol: xcb_create_window
> >>> referenced by windowexample.c
> >>> /tmp/windowexample-2f744c.o:(main)
> ld: error: undefined symbol: xcb_map_window
> >>> referenced by windowexample.c
> >>> /tmp/windowexample-2f744c.o:(main)
> ld: error: undefined symbol: xcb_flush
> >>> referenced by windowexample.c
> >>> /tmp/windowexample-2f744c.o:(main)
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> nomad at NomadBSD ~/programmieren [1]>
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> don't know why theese errors appear in that small code example.
>
>
>
> *Von:* Alan Coopersmith <alan.coopersmith at oracle.com>
> *Gesendet:* 04.10.2020 22:55
> *An:* Hans Schüren <Hans-Schueren at directbox.com>,<xcb at lists.freedesktop.org>
> *Betreff:* Re: [Xcb] want to compile an example code.
> On 10/4/20 12:38 PM, Hans Schüren wrote:
> > Hello,
> >
> > i want to compile a sample code from the XCB manual.
> >
> > There are the following errors. What can i do ?
> >
> > I use FreeBSD and have XCB installed.
> >
> > barchart.c Motif/ xcbsample.c
> > nomad at NomadBSD ~/programmieren> gcc -Wall xcbsample.c -o xcbsample pkg-config
> > --cflags --libs xcb
> > fish: Unknown command: gcc
> > nomad at NomadBSD ~/programmieren [127]> cc -Wall xcbsample.c -o xcbsample
> > pkg-config --cflags --libs xcb
> > cc: error: unsupported option '--cflags'
> > cc: error: unsupported option '--libs'
> > cc: error: no such file or directory: 'pkg-config'
> > cc: error: no such file or directory: 'xcb'
>
> You need to put $( ) or ` ` around the pkg-config command so that the
> output of the pkg-config command is used as flags to the compiler:
>
> cc -Wall xcbsample.c -o xcbsample $(pkg-config --cflags --libs xcb)
>
> or
>
> cc -Wall xcbsample.c -o xcbsample `pkg-config --cflags --libs xcb`
>
> (It depends on what shell you use - the first is preferred for most shells,
> but some old shells like csh may require the second form.)
>
> --
> -Alan Coopersmith- alan.coopersmith at oracle.com <mailto:alan.coopersmith at oracle.com>
> Oracle Solaris Engineering - https://blogs.oracle.com/alanc
> <https://blogs.oracle.com/alanc>
> _______________________________________________
> Xcb mailing list
> Xcb at lists.freedesktop.org <mailto:Xcb at lists.freedesktop.org>
> https://lists.freedesktop.org/mailman/listinfo/xcb
> <https://lists.freedesktop.org/mailman/listinfo/xcb>
More information about the Xcb
mailing list