Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Начинающий, помогите собрать комплект для компиляции.  (Прочитано 1627 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн servmv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Доброго всем времени суток, примите новичка.
20 лет проработал чисто с виндой и её VS2003-2019, keil
пишу для окошек и микроконтроллеров.
решил освоить лин, поставил вот юбунти и по потихоньку осваиваю,
то есть какие у меня задачи под лин. STM контролеры но об этом позже
сейчас мне нужно освоить компиляцию асемблера и с,с++, скачал с гидхаба исходники memtest86(для примера), https://github.com/Distrotech/memtest86
установил visual studio code подключил GNU Assembler Language, Support C/C++ Extension Pack
и не понимаю что делать дальше чтобы это собрать, насколько я понимаю, должно собраться 2 файла, bootloader.bin, и memtest.bin
поясню, я не понимаю в линуксе не черта от слова совсем, пол часа назад гуглил как сменить раскладку клавы.
 

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5422
  • Все по палатам!
    • Просмотр профиля
servmv, в терминале заходишь в директорию .../memtest***
Вводишь
make
и смотришь, что пишет.
ЗЫ
Книжки по линуксу читал?
Извините, я все еще учусь

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5674
    • Просмотр профиля
servmv, для адаптации сначала можно поставить Kubuntu или Xubuntu, у них более приближенная к Windows схема расположения элементов рабочего стола.
Нужно читать книги и мануалы типа таких и если что-то не получается - обращаться на форум.

Оффлайн servmv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Цитировать
vit@vitpc:~/Code/memtest86$ make
rm -f *.o *.s *.iso memtest.bin memtest memtest_shared \
   memtest_shared.bin memtest.iso
gcc -E -traditional head.S -o head.s
as -32   -o head.o head.s
gcc -c -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector  -fno-strict-aliasing reloc.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o main.o main.c
gcc -c -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding test.c
test.c:17:10: fatal error: sys/io.h: Нет такого файла или каталога
   17 | #include <sys/io.h>
      |          ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:58: test.o] Ошибка 1
vit@vitpc:~/Code/memtest86$





Пользователь добавил сообщение 15 Декабря 2021, 21:18:49:
Нужно читать книги и мануалы типа таких и если что-то не получается - обращаться на форум.
Я русский человек, я сначала ломаю потом читаю инструкцию.


Нужно читать книги и мануалы типа таких и если что-то не получается - обращаться на форум.
Та не, легкие пути тоже не по нашему  8)

Пользователь добавил сообщение 15 Декабря 2021, 21:20:33:
Да если честно, все это конечно читается и смотрится на ютубе, на это много времени надо, и конечно придет все. Сейчас задаю вопросы на которые натыкаюсь.


Пользователь добавил сообщение 15 Декабря 2021, 21:23:18:
на канале Сергея Талипова много ответов нашел, но тут на такое натыкаюсь, то одно не установлено то другое, сижу на пару со своим старшим (8 лет) он собирает лего, я линукс.
« Последнее редактирование: 15 Декабря 2021, 21:23:18 от servmv »

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5422
  • Все по палатам!
    • Просмотр профиля
Я русский человек, я сначала ломаю потом читаю инструкцию.
Я тоже русский человек - сначала читаю инструкцию, потом работаю. Так учили.
ЗЫ
test.c:17:10: fatal error: sys/io.h: Нет такого файла или каталога
Не верю, что "20 лет проработал чисто с виндой и её VS2003-2019, keil"
Зачем русский в терминале? Как по тексту ошибки искать решение проблемы в инете, только на русских сайтах?
К примеру - https://www.linux.org.ru/forum/development/11066741
« Последнее редактирование: 15 Декабря 2021, 22:21:06 от SergeyIT »
Извините, я все еще учусь

Оффлайн servmv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Зачем русский в терминале? Как по тексту ошибки искать решение проблемы в инете, только на русских сайтах?
Do you and your wife speak English?

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5422
  • Все по палатам!
    • Просмотр профиля
Do you and your wife speak English?
Жена нет, я почти нет. Это что-то меняет?
Помню как попросил спеца помочь мне освоить Fortran... он посмотрел на меня, как на  :idiot2: и сказал - учится за 4 часа теории и 4 часа практики. Так и получилось... освоил по описанию языка из документации на PDP-11/04 на английском, не зная английского от слова совсем - изучал только французский (школа, техникум, институт).
Извините, я все еще учусь

Оффлайн servmv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Там был вопрос "Вы и с женой говорите по-английски?"  ;D
Лан ща не об этом, что это за чудо<sys/io.h>? в стандартных либах я такого не помню. Автору писать? Мне кажется что то не установлено.

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5422
  • Все по палатам!
    • Просмотр профиля
Мне кажется что то не установлено.
Я ссылку одну тебе дал из гугла по поиску твоей ошибки - "memtest test.c fatal error: sys/io.h: No such file or directory"
... там в тексте вопрос
"dev-пакеты для x86 установлены?"
Вот и подумай! :coolsmiley:
ЗЫ
И вы программист? Не смешите  ;D
Здесь
Вы и с женой говорите по-английски? - Do you speak English to your wife?
А я считал себя не знающим английского  :coolsmiley:.
Извините, я все еще учусь

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5674
    • Просмотр профиля
Мне кажется что то не установлено.
Проверьте libc6-dev.

Дальше по аналогии искать примерно так, для своей версии и разрядности дистрибутива.

Оффлайн servmv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Проверьте libc6-dev.
Спасибо, проверил.
Уже установлен пакет libc6-dev самой новой версии (2.31-0ubuntu9.2).
libc6-dev помечен как установленный вручную.
Следующие пакеты устанавливались автоматически и больше не требуются:
  guile-2.2-libs libqqwing2v5
Для их удаления используйте «sudo apt autoremove».
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 11 пакетов не обновлено.
И у меня тут доп вопрос, где хранятся  <*/*.h> ? глянуть содержимое файлов и их наличие. Ну то есть где он их по умолчанию ищит, и можно ли менять эти пути?.


Пользователь добавил сообщение 16 Декабря 2021, 21:41:15:
дело в том что я по пробовал поиском по искать io.h нашел только в cube_mx и в корне memtest(но тут явно не то)

Пользователь добавил сообщение 16 Декабря 2021, 22:01:45:
так по ходу нашел я файл тут: /usr/include/x86_64-linux-gnu/sys/io.h
вопрос почему он его не видит
« Последнее редактирование: 16 Декабря 2021, 22:01:45 от servmv »

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5422
  • Все по палатам!
    • Просмотр профиля
servmv,
В Makefile опции компилятора смотрел?
...
CFLAGS= -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin \
   -ffreestanding -fPIC $(SMP_FL) -fno-stack-protector
...
-m32 - то есть 32бита

Поставь пакет libc6-dev-i386 и попробуй

Компилирует, но не линкует, почему-то не находит функцию reboot, хотя в lib.o есть как inline...
Разбирайся, если не лень... или обратись к авторам... но думаю пошлют.
И зачем взял для примера именно эту программу собирать?
Извините, я все еще учусь

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5674
    • Просмотр профиля
так по ходу нашел я файл тут: /usr/include/x86_64-linux-gnu/sys/io.h

вопрос почему он его не видит
Сборка 32-х разрядных программ в 64-х дистрибутиве называется кросскомпиляцией, для этого нужно соответствующим образом настраивать сборочное окружение.

Возьмите для начала что-то попроще, типа «Hello, world!».

Оффлайн servmv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Возьмите для начала что-то попроще, типа «Hello, world!».

Такое работает без нареканий.

И зачем взял для примера именно эту программу собирать?

Нужно разобраться как написать софт из под биос, по сути мне нужно собрать то что сможет диагностировать ПК, исли нет изо, сбои загрузки. На всех этапах нужно писать лог. Вариантов решений тут много, но мне надо затестить озу прежде чем я туда загружу ядро, в автоматическом режиме.


либу я поставил 386тую, у меня тоже не линкуется.

взял файл bootsect.S на винду по пробовал NASM тот в обще этот код не понимает, в каждой строчке ошибка, пло начал вглядывается в код, такое ощущение что атрибуты на оборот пишутся. Мы дошли до того что асемблер тоже теперь разный?

Сборка 32-х разрядных программ в 64-х дистрибутиве называется кросскомпиляцией, для этого нужно соответствующим образом настраивать сборочное окружение.
Можно подробнее?

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5422
  • Все по палатам!
    • Просмотр профиля
установил visual studio code подключил GNU Assembler Language, Support C/C++ Extension Pack
Я ничего этого не устанавливал - а результат одинаковый... Так может и не надо было ставить, может с чего-то другого начать, например то что уже предлагали - книжки, "хело ворлд"... и поискать подобные проекты в инете
Извините, я все еще учусь

 

Страница сгенерирована за 0.021 секунд. Запросов: 21.