Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670

Ошибка в makefile

05.11.2013, 22:01. Показов 946. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
makifile
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Исходные объектные модули
SOURCES=init.o main.o 
# Флаги компилятора языка C
CFLAGS=-nostdlib -nostdinc -fno-builtin -fno-stack-protector -m32 -g
# Флаги компоновщика
LDFLAGS=-T link.ld -m elf_i386 
# Флаги ассемблера
ASFLAGS=--32
# Правило сборки
all: $(SOURCES) link
# Правило очистки
clean:
    -rm *.o kernel    
# Правило компоновки 
link:
    ld $(LDFLAGS) -o kernel $(SOURCES)
main.c
C
1
2
3
4
5
6
7
int main(void)
{
 
  /* Тут будет расположен код ядра */
 
  return 0;
}
init.s
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*-------------------------------------------------
//
// Код инициализации и мультизагрузки
//    
//-----------------------------------------------*/
.code32
 
/*-------------------------------------------------
//    Константы для заголовка Multiboot
//-----------------------------------------------*/
.set MBOOT_HEADER_MAGIC, 0x1BADB002
.set MBOOT_HEADER_FLAGS, 0x00000001
.set MBOOT_CHECKSUM, -(INIT_MBOOT_HEADER_MAGIC+INIT_MBOOT_HEADER_FLAGS)
 
/* Указываем что функция main - внешняя и расположена в другом
 объектном модуле */ 
.extern main
 
/* Секция - заголовок мультизагрузки */
.section .mboot
 
.int MBOOT_HEADER_MAGIC
.int MBOOT_HEADER_FLAGS
.int MBOOT_CHECKSUM
 
/* Секция кода */
.section    .text
 
/* Делаем точку входа глобальной, доступной для компоновщика */
.global      init
 
init:
        cli /* Выключаем ВСЕ прерывания */
        
        push    %eax /* Заталкиваем в стек */
        push    %ebx /* регистры общего назначения */
        
        call    main /* вызываем main */
        
        hlt /* Останавливаем процессор */
        
loop: /* Переходим в бесконечный цикл */
        jmp    loop
link.ld
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ENTRY (init)
 
SECTIONS
{
/* Адрес, с которого будет начинаться код ядра в памяти */
    . = 0x00100000;
/* Секция кода */
 
    .text ALIGN (0x1000) :
    {
        *(.mboot)
        *(.text)
    }
/* Секция инициализированных данных */
    .data ALIGN (0x1000) :
    {
        *(.data)
    }
/* Секция неинициализированных данных */     
 
    .bss :
    {
        *(.bss)
    }
/* Место в памяти, где уже нет кода ядра */
    end = .; _end = .; __end = .;    
}
Code
1
2
motoroller@motoroller ~/myOS/src $ make
makefile:13: *** missing separator.  Stop.
Добавлено через 1 минуту
брал вот тут http://phantomexos.blogspot.ru... iboot.html
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2013, 22:01
Ответы с готовыми решениями:

Ошибка в Makefile
Проект на несколько файлов, поэтому решил написать makefile. Нашел шаблон и немного его видоизменил под свои нужды: CC=icc ...

При запуске Makefile выдается ошибка "Makefile:2: recipe for target 'all' failed"
решила поучиться собирать проекты через мэйкфайлы. Пожалуйста, помогите разобраться all: g++ main.cpp -o philBlock.o ...

Make, makefile, simple makefile, hello_world
Всем привет! Разбираюсь с мэйк-файлами. Проблема следующая: не понятен сам принцип обработки целей. Сейчас я понимаю это...

6
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
06.11.2013, 19:42
Зачем перед rm стоит минус?
1
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
06.11.2013, 19:55  [ТС]
Цитата Сообщение от NoMasters Посмотреть сообщение
Зачем перед rm стоит минус?
не знаю

Добавлено через 12 минут
убрал - таже ошибка
0
 Аватар для zalogic
194 / 193 / 15
Регистрация: 12.12.2010
Сообщений: 270
06.11.2013, 21:00
а табы у тебя соблюдаются?

Добавлено через 4 минуты
kernel что такое? make видимо тоже не понимает...
1
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
06.11.2013, 22:52  [ТС]
Цитата Сообщение от zalogic Посмотреть сообщение
kernel
целевой файл. все должно слинковаться в него
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
07.11.2013, 10:44
1. Перед правилами сборки (у вас это rm и ld) стоит знак табуляции? (инче make выдаст ушибку)
2. У вас нет правила сборки объектных файлов, эти файлы имеются в текущем каталоге?
1
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
07.11.2013, 10:53  [ТС]
gng, спасибо, табуляция помогла а сборку объектных файлов он сам как-то делает. все работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2013, 10:53
Помогаю со студенческими работами здесь

Ошибка: [Makefile] Error 3
Привет. Установил Qt, собрал профиль, но пустой проект не запускается. Помогите разобраться! см скрины

Ошибка компиляции с Makefile
Хотел бы объяснить нормально, но сам мало чего понимаю. В общем, я хочу получить статическую библиотеку ПО для захвата видеоизображения...

Makefile. Ошибка. C++ 2011 standard
Доброго времени суток. При запуске make получаю ошибку: "Building CXX object...

Странная ошибка makefile.win
Код: #include <iostream> using std::cout; using std::cin; using std::endl; int main(int argc, char** argv) { cout...

Ошибка при компиляции из makefile-а
Доброго дня. Проблема в следующем. Есть исходники готового проекта, написанного на C. Такой минисимулятор движения парусника. Его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru