Проблема с модулем компиляции :«Нет правила для создания цели»

Причина, по которой каждый случай состоит из чего-то, что "выводит за скобки" некоторые данные, заключается в том, что он говорит терминалу начать что-то делать, затем отправить данные, а затем закончить что-то делать..

Первая последовательность — это элемент управления xterm , который bash может использовать для помещения значения $PWDв заголовок окна (и имя значка ). Вы ничего не увидите в подсказке для этого. Значение оболочки $PWD— это данные, левая сторона -начинает управляющую последовательность, а правая сторона -завершает последовательность.

Другой переключается на строку VT100 -набор символов чертежа (см. Обозначает набор символов G0:0переходит к строке -рисунок,Bвозвращается к латинице -1 )напечатать (что-то )дляb. Но реальный VT100 не показывает клавишу со стрелкой для этого (, он показывает"HT" , для горизонтальной вкладки ):

.

enter image description here

Тем не менее, некоторые «эмуляторы VT100» делают свой собственный выбор (, хотя обычно они не трогают первоначальный выбор VT100 ). Интересно, что хотя MobaXterm основан на PuTTY, PuTTY документирует более ранние варианты VT52 в комментарии (, хотя не реализует вариант для b ):

.

        /*
         * From the VT100 Manual
         * NOTE: The special graphics characters in the VT100
         *       are different from those in the VT52
         *
         * From VT102 manual:
         *       137 _  Blank             - Same
         *       140 `  Reserved          - Humm.
         *       141 a  Solid rectangle   - Similar
         *       142 b  1/                - Top half of fraction for the
         *       143 c  3/                - subscript numbers below.
         *       144 d  5/
         *       145 e  7/
         *       146 f  Degrees           - Same
         *       147 g  Plus or minus     - Same
         *       150 h  Right arrow
         *       151 i  Ellipsis (dots)
         *       152 j  Divide by
         *       153 k  Down arrow
         *       154 l  Bar at scan 0

Настоящий VT100 также будет эмулировать VT52, поэтому в PuTTY есть некоторый код, связанный с VT52. Но показанная escape-последовательность не зайдет так далеко — это всего лишь VT100. Что касается того, почему VT52 обеспечивал стрелку вправо -и стрелку вниз -, но не стрелку вверх -или стрелку влево -, это не ясно, некоторые ~40 лет спустя.Но разработчик MobaXterm, вероятно, решил улучшить ситуацию, используя код, который не казался таким уж полезным.

Источник эмулятора терминала MobaXterm находится на их веб-сайте как «MoTTY». Таблица, используемая для рисования символов строки -, выглядит следующим образом:

/* Character conversion arrays; they are usually taken from windows,
 * the xterm one has the four scanlines that have no unicode 2.0
 * equivalents mapped to their unicode 3.0 locations.
 */
static const WCHAR unitab_xterm_std[32] = {
//MOBAMODIF
//    0x2666, 0x2592, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, 0x00b1,
    0x2022, 0x2592, 0x27a4, 0x240c, 0x2714, 0x2718, 0x00b0, 0x00b1,
//END_MOBAMODIF
    0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 0x23ba,
    0x23bb, 0x2500, 0x23bc, 0x23bd, 0x251c, 0x2524, 0x2534, 0x252c,
    0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x00b7, 0x0020
};

Первая строка — это то, что они изменили (комментарий от PuTTY, в свою очередь адаптированный из xterm ). Отображение этой первой строки как UTF -8 на xterm показывает, что это за символы (hint :первая записьвосьмеричная140 или`):

8226 ->0x2022 ->{•} (4 bytes, punct)
9618 ->0x2592 ->{▒} (4 bytes, printing)
10148 ->0x27a4 ->{➤} (5 bytes, printing)
9228 ->0x240c ->{␌} (4 bytes, printing)
10004 ->0x2714 ->{✔} (5 bytes, printing)
10008 ->0x2718 ->{✘} (5 bytes, printing)
176 ->0xb0 ->{°} (3 bytes, printing)
177 ->0xb1 ->{±} (3 bytes, printing)

Предлагаемый дубликат не связан ни с одной из частей вопроса, особенно со второй частью, потому что в строке приглашения используется не UTF -8, а другая кодировка.

0
26.02.2021, 15:25
1 ответ

Когда я вывожу в exampleoneвместо example1вот так:gcc example1.c -o exampleoneя перестаю получать

gcc: error: gcc: No such file or directory
gcc: error: example1: No such file or directory
gcc: fatal error: no input files

Я получил эти ошибки при самостоятельной компиляции вашего кода:

example1.c:1:11: error: #include expects "FILENAME" or <FILENAME>
    1 |  #include linux/module.h
      |           ^~~~~
example1.c:3:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_init_’
    3 |  static int __init _init_(void)
      |                    ^~~~~~
example1.c:9:21: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_exit_’
    9 |  static void __exit _exit_(void)
      |                     ^~~~~~
example1.c:16:2: warning: data definition has no type or storage class
   16 |  module_init(_init_);
      |  ^~~~~~~~~~~
example1.c:16:2: warning: type defaults to ‘int’ in declaration of ‘module_init’ [-Wimplicit-int]
example1.c:16:2: warning: parameter names (without types) in function declaration
example1.c:17:2: warning: data definition has no type or storage class
   17 |  module_exit(_exit_);
      |  ^~~~~~~~~~~
example1.c:17:2: warning: type defaults to ‘int’ in declaration of ‘module_exit’ [-Wimplicit-int]
example1.c:17:2: warning: parameter names (without types) in function declaration

Дайте мне знать, если это решит вашу проблему. Если это не так, дайте мне знать, и я удалю этот ответ. И последнее, убедитесь, что вы находитесь в правильном каталоге в терминале.

0
18.03.2021, 22:28

Теги

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