Как изменить параметры компилятора с AutoMake?

Существует два слоя здесь, КОД КЛАВИШИ к отображению KEYSYM и KEYSYM к текстовому отображению. Существует больше слоев при подсчете ядра которое должно отобразить Клавиатуру AT scancodes на КОД КЛАВИШИ XT-стиля или Клавиатуру USB код HID к КОДУ КЛАВИШИ. КОД КЛАВИШИ является просто 8-разрядным целым числом без знака, которое ядро Операционной системы передает серверу X11. Это может варьироваться между Операционными системами, такими как Linux и Солярис. На Linux эти КОДЫ КЛАВИШИ обычно являются тем же числом, используемым на старых клавиатурах компьютера XT. Более новые компьютеры с В, PS/2 или клавиатуры USB обычно просто отображают те клавиатуры на старый код XT для ключа для хранения жизни простой.

Необработанные коды клавиатуры, представляют ли они быть XT, В, PS/2 или USB физическое местоположение на клавиатуре. Клавиатура XT только отправляет единственное 8-разрядное число на нажатии или выпуске ключа. Q включают американскую/британскую клавиатуру XT, отправляет номер 16. На французской клавиатуре тот же самый физический ключ маркирован a, но это все еще отправляет 16. Это - более высокие слои в операционной системе, которые присваивают ему реальное значение. Когда клавиша отпускается на клавиатуре XT, тот же код клавиши отправляется плюс 128. Для этого примера, когда q нажимается, отправляются 16, но на выпуске, отправляется номер 142 (16+128). Клавиатуры AT используют scancodes, которые являются серией чисел и могут стать довольно длинными. Ключевые выпуски добавляют дополнительные коды. Например, scancode для Паузы является E1, 1D, 45, E1, 9D, C5. Большинство Операционных систем включая DOS, Windows, Linux, FreeBSD и BIOS вся карта scancodes в намного более простой XT-стиль scancodes. Это также сохраняет легче поддерживать более новые клавиатуры, которые используют различные коды, такие как Клавиатуры USB, которые отправляют коды HID. Все коды отображаются на том же непротиворечивом множестве кодов Операционной системой перед X11, или приложение видит их.

X11 незнаком с этой частью процесса, это просто получает КОД КЛАВИШИ от ядра и применяет его собственное отображение для преобразования того КОДА КЛАВИШИ в KEYSYM. Xmodmap является стандартным инструментом для управления тем отображением. Большая часть поведения отображения клавиатуры настраивается, но существует несколько особых случаев, таких как Num Lock, Переключатель режимов и Caps Lock / Блокировка Сдвига, которые трудно кодируются в X11. Другие аспекты как Сдвиг на самом деле настраиваются. Любой ключ может быть отображен для действия как сдвиг, в отличие от Переключателя режимов или Num Lock.

КОДЫ КЛАВИШИ представляют физические ключи, отправленные ядром Операционной системы. Каждый КОД КЛАВИШИ может отобразиться на 8 возможных KEYSYMs. Только 4 используют и иногда называют уровнями 1-4. Уровень 1 указывает KEYSYM, который печатается, когда никакие модификаторы не активны. Это часто строчные буквы и цифры. Модификаторами являются КОДЫ КЛАВИШИ, которые изменяют KEYSYM, сгенерированный другими КОДАМИ КЛАВИШИ, когда модификатор активен (нажатый или включенный.) Кодами клавиши модификатора также управляют через Xmodmap. Уровень 2 указывает KEYSYM, который будет отправлен, когда модификатор сдвига нажимается. Уровень 3 активируется каждый раз, когда Переключатель режимов KEYSYM был нажат. Уровень 4 активируется, когда и клавиша Shift и Переключатель режимов активны.

После того как KEYSYM был сгенерирован, это может быть интерпретировано непосредственно, но чаще всего будет преобразовываться для отправки текстовых сообщений. Не все KEYSYMs превращаются в текст или могут только влиять на будущий KEYSYM. Одним примером является Shift_L, конечно, который не имеет никакого текстового представления, но существует также много KEYSYMs, которые используются для Создания другого символа. Список их в моей системе находится под /usr/share/X11/locale/en_US.UTF-8/Compose. Одним таким примером является dead_acute KEYSYM, который при нажатии попытается преобразовать следующий KEYSYM в острую букву с диакритическим знаком. Существует стандартное отображение для того, чтобы превратить KEYSYMs в Unicode.

Теперь, когда все это было сказано, обратите внимание, что Xmodmap является устаревшим и заменяется XKB, который намного более сложен. Это влияет, как КОДЫ КЛАВИШИ отображаются на KEYSYMs, но не, как ядро генерирует КОДЫ КЛАВИШИ, ни как KEYSYMs преобразованы в текст или составлены, который является все еще тем же. XKB может быть отключен, восстановив поведение Xmodmap. Это также имеет слой совместимости для поддержки Xmodmap, но это может иметь проблемы, поскольку это не абсолютно совместимо. Правила XKB находятся под /usr/share/X11/xkb/ и намного более сложны. Существует некоторая хорошая документация в другом месте относительно того, как она генерирует раскладки клавиатуры для отображения КОДОВ КЛАВИШИ к KEYSYMs.

Что касается консоли Linux, это имеет свои собственные раскладки клавиатуры, которые хранятся в /usr/share/keymaps и загруженный loadkeys команда. Когда в BIOS и более ранних этапах загрузчика, включая GRUB2, отображение клавиатуры - то, к чему числу BIOS решает отобразить ключ.

3
29.08.2011, 11:09
1 ответ

Обычно стоит считать вывод ./configure --help. Это предлагает работать, настраивают как

./configure CFLAGS="-ggdb3 -O0"
make
make install

Переопределение CFLAGS (или LDFLAGS, CPPFLAGS, В зависимости от Ваших потребностей), следующим образом работает также:

CFLAGS="-ggdb3 -O0" ./configure
make
make install

Если необходимо использовать компилятор кроме gcc, необходимо переопределить CC переменная.

4
27.01.2020, 21:20

Теги

Похожие вопросы