referência indefinida para 'XShmQueryVersion'

1

Eu estou tentando compilar uma base de código simples que usa funções simples do X11 mas dá erro na compilação:

(.text+0x1c): undefined reference to 'XShmQueryVersion'

Eu usei a função XShmQueryVersion no meu código, eu a compilei com

g++ myprogram.c -o program

O que estou perdendo?

    
por Junaid 08.12.2012 / 22:20

1 resposta

2

Você precisa dizer ao compilador em quais bibliotecas encontrar as funções do X11. As funções principais do X, como XOpenDisplay , estão em libX11 , enquanto as extensões estão em bibliotecas adicionais - como libXext para XShmQueryVersion .

A maneira direta de dizer ao seu compilador para linkar com essas bibliotecas é através de -l flags:

g++ myprogram.c -o program -lXext -lX11

Depois de criar um software maior, com o recurso Makefiles & amp; Por exemplo, existem ferramentas para ajudar a gerenciar os sinalizadores para essas bibliotecas, e você pode ter algo em seu Makefile como:

CFLAGS += 'pkg-config --cflags x11 xext'
LIBS += 'pkg-config --libs x11 xext'
    
por alanc 09.12.2012 / 19:29