Неопределенная ссылка на `XShmQueryVersion'
Я пытаюсь скомпилировать простую кодовую базу, которая использует простые функции X11, но это дает ошибку при компиляции:
(.text+0x1c): undefined reference to `XShmQueryVersion'
Я использовал XShmQueryVersion
функция в моем коде, я скомпилировал его с
g++ myprogram.c -o program
Что мне не хватает?
1 ответ
Вы должны указать компилятору, в каких библиотеках найти функции X11. Основные функции X: XOpenDisplay
находятся в libX11, а расширения в дополнительных библиотеках - например, libXext для XShmQueryVersion
,
Прямой способ сообщить компилятору о связи с этими библиотеками - через -l
флаги:
g++ myprogram.c -o program -lXext -lX11
Как только вы приступите к созданию более крупного программного обеспечения с помощью Makefiles и тому подобного, появятся инструменты, помогающие управлять флагами для этих библиотек, и в вашем Makefile может быть что-то, например:
CFLAGS += `pkg-config --cflags x11 xext`
LIBS += `pkg-config --libs x11 xext`