Код x11 не компилируется в блоках кода - PullRequest
3 голосов
/ 06 ноября 2011

В настоящее время я использую последнюю версию Code-blocks в Ubuntu 11.04.У меня GTK + 2, и 3 библиотеки разработчика полностью установлены (и работают), и, по-видимому, установлен x11.Там есть заголовочные файлы.

Однако простой код не будет компилироваться с использованием кодирования x11.

#include "X11/Xlib.h"

int main() {
    Display *display = XOpenDisplay(0);
    Window root = DefaultRootWindow(display);
    XWarpPointer(display, None, root, 0, 0, 0, 0, 100, 100);
    XCloseDisplay(display);
    return 0;
}

Это дает мне показание:

obj / Release / main.o || В функции `main ': |

неопределенная ссылка наXOpenDisplay

неопределенная ссылка на XWarpPointer

неопределенная ссылка на XCloseDisplay

| === Сборка завершена: 3 ошибки, 0 предупреждений === |

Я пробовал читать несколько веб-страниц «связывания» x11, я нахожу только заголовочные файлы, а не тип файла, запрашиваемый компоновщиком в компиляторе (это неправильный термин для этого .. это некомпилятор .. это что-то еще .. я знаю. извинения)

Ответы [ 3 ]

4 голосов
/ 06 ноября 2011

Я не знаю, что такое Code Blocks, но для нормального процесса компиляции / компоновки вам нужно указать -lX11 для связи с libX11.so для функций Xlib.

1 голос
/ 02 января 2012

Спасибо!У меня просто была такая же проблема.Чтобы объяснить это:

Настройки> Компилятор и отладчик> Настройки компоновщика> Другие опции компоновщика> "-lX11"

Для записи 'codelite' все сделано правильно.

0 голосов
/ 05 февраля 2012

В CodeBlocks вы можете просто установить в библиотеках опций проекта ссылки, с которыми можно установить -lX11 в настройках компилятора, чтобы каждая программа, которую вы компилируете, ссылалась на кодовые блоки X11.

...