Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
 Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250

makefile

28.01.2010, 21:01. Показов 2387. Ответов 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_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru