Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250

makefile

28.01.2010, 21:01. Показов 2396. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подправьте makefile pleace

Code
1
2
3
4
5
6
7
8
9
10
11
complex.o: complex.h complex.cpp
    g++ complex.h complex.o -c -fPIC
 
libcomplex.so: complex.o
    g++ -shared -o libcomplex.so complex.o
 
main.o: main.cpp complex.h
    g++ -c main.cpp
 
res : main.o complex.so
    g++ main.o -L. -lcomplex -o res
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2010, 21:01
Ответы с готовыми решениями:

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

Makefile
Не могли бы вы мне помочь написать makefile? У меня для примера в makefile есть переменная с именами файлов "main.cpp"...

Создание makefile
Приветствую, написал бублиотеку, хочу использовать ее в программе, библиотека храниться в папке library, файлы transferline.cpp,...

6
 Аватар для Gravity
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
28.01.2010, 21:23
Цитата Сообщение от breate Посмотреть сообщение
g++ complex.h complex.o -c -fPIC
Ты хочешь скомпилить заголовочный файл, к тому же пропущена опция -o.
2
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
28.01.2010, 21:27
А еще первой строкой дописать:
Code
1
all: res
2
 Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
29.01.2010, 02:35  [ТС]
я хочу скомпилировать класс, зануть его в шаред обжект , а потом прилинковать к майну, это мой первый мэйкфайл, он мне даёт ошибку

Bash
1
make: *** Нет правила для сборки цели `complex.so', требуемой для `res'.  Останов.
в предыдущей моей теме "extern class" можно увидеть сам класс и майна, способ которым там пытался не работает!

если кто напишет как вообще надо это делать буду очень благодарен

Добавлено через 4 часа 30 минут
нашел все ошибки
1.

Цитата Сообщение от breate Посмотреть сообщение
g++ complex.h complex.o -c -fPIC
2.


Цитата Сообщение от breate Посмотреть сообщение
res : main.o complex.so
правильный мэйк

Code
1
2
3
4
5
6
7
8
9
10
11
complex.o: complex.h complex.cpp
    g++ complex.h complex.cpp -c -fPIC
 
libcomplex.so: complex.o
    g++ -shared -o libcomplex.so complex.o
 
main.o: main.cpp complex.h
    g++ -c main.cpp
 
res : main.o libcomplex.so
    g++ main.o -L. -lcomplex -o res
З.Ы.
зачем
Цитата Сообщение от odip Посмотреть сообщение
all: res
я так и не понял ...

Добавлено через 3 минуты
можно в мэйке ещё дописать

Code
1
2
3
4
5
clean:
    rm -f complex.h.gch
    rm -f complex.o
    rm -f main.o
    strip -s res
потом
Bash
1
$make clean
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
29.01.2010, 10:54
Цитата Сообщение от breate Посмотреть сообщение
зачем
Цитата:
Сообщение от odip
all: res
all - основная цель. без нее make не в курсе что от чего зависит, и в какой последовательности собирать. т.е. именно твой случай.

Добавлено через 2 минуты
кстати тут хороший док: http://www.linux.org.ru/books/GNU/Gmake.htm
но почему-то в данный момент он недоступен. может какие-то работы на сервере. возможно позже появится.
1
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
29.01.2010, 14:39
Чтобы собрать программу с помощью файла из 1-го поста нужно набирать: make res
Если добавить первую цель all, тогда для сборки будет достаточно: make
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
29.01.2010, 14:56
Мне всегда казалось, что make без параметров начинает работать с самой первой целью, и необязательно, чтобы она all называлась. А all - это типа так принято

breate, не "g++ complex.h complex.cpp -c -fPIC", а "g++ complex.cpp -c -fPIC". Предполагаю, что в complec.cpp у тебя есть #include "complex.h"

Можешь почитать тему про автоматическое построение зависимостей от .h файлов: Makefile: как с использованием gcc строить автоматические зависимости от .h файлов?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2010, 14:56
Помогаю со студенческими работами здесь

Неправильный Makefile
Здравствуйте! Пытаюсь сделать Makefile, но выдает ошибку: ../obj/EasyGL.cpp make: ../obj/EasyGL.cpp: Command not found make: *** ...

Makefile debugger
Добрый день. Имеется проект из 3-х файлов, main.cpp, include/cgi.h, include/cgi.cpp. Естественно из main.cpp инклудим cgi.h. Для...

Упрощение MakeFile-а
Вечер добрый! Я в инете откопал библиотеку f03gl для использования OpenGL с Фортраном в Линуксе. Удобство либы заключается в том, что её не...

Makefile внешний каталог
Доброго времени суток. Пишу программку под Линукс. С простыми makefile'ами я вроде разобрался(когда файлы лежат в одном каталоге). Но что...

Не правильная работа makefile
Здравствуйте, создаю для сборки программы makefile с таким содержанием: compile: g++ -fPIC -c /home/kobaeugenea/project/cprogram.cpp...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru