Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/140: Рейтинг темы: голосов - 140, средняя оценка - 4.92
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
1

Нет правила для сборки цели при makefile

04.02.2012, 18:38. Показов 27264. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
учусь писать makefile под си и gtk+
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Makefile for gtk project
LIBS = `pkg-config --libs gtk+-2.0`
CFLAGS = `pkg-config --cflags gtk+-2.0`
binary: main.o lib.so
    gcc -o binary main.o -L. -llib -Wl,-rpath,.
 
main.o: main.c
    gcc -c main.c
 
lib.so: gtk_main.o gtk_main2.o
    gcc $(LIBS)-shared -o lib.so gtk_main.o gtk_main2.o
 
gtk_main.o: gtk_main.c
    gcc $(CFLAGS)-c -fPIC gtk_main.c
 
gtk_main2.o: gtk_main2.c
    gcc $(CFLAGS)-c -fPIC gtk_main2.c
 
clean:
    rm -f *.o *.so binary
выходит ошибка : Нет правила для сборки цели `gtk_main2.c', требуемой для `gtk_main2.o'. Останов. помогите разобраться
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.02.2012, 18:38
Ответы с готовыми решениями:

GNU Makefile, не видит работу для цели
привет. зарукоблудил такой мейкфайл: BIN = sf CC = gcc CXX = g++ CFLAGS = -O3 CXXFLAGS = $(CFLAGS) LD = g++ LDFLAGS =

Создать makefile для сборки java программы
Создать makefile со следующими целями: - очистка (clean) - удаление промежуточных файлов - построение (build) – перекомпиляция всех...

Как создать Makefile с несколькими файлами для сборки
Здравстуйте! Имеются в папке несколько файлов исходного кода на C, например first.c, second.c, third.c. Они независимы, нужно с помощью...

13
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
04.02.2012, 20:05 2
видимо, у тебя нет файла gtk_main2.c
0
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
04.02.2012, 20:23  [ТС] 3
есть все в одной папке и он такой же как и gtk_main. вот gtk_main2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include "lib.h"
#include <gtk/gtk.h>
 
void gtk_main2 (void)
{
  GtkWidget *window2;
 
    
    window2 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW(window2), "");
    gtk_widget_show_all(window2);
        
    gtk_main ();
 
    
}
вот gtk_main
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include "lib.h"
#include <gtk/gtk.h>
 
void gtk_main (void)
{
  GtkWidget *window;
 
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW(window), "FF");
    gtk_widget_show_all(window);
        
    gtk_main ();
 
    
}
вот lib.h
C
1
2
void gtk_main (void);
void gtk_main2 (void);
вот main
C
1
2
3
4
5
6
7
8
#include "lib.h"
 
int main (void)
{
        gtk_main ();
    gtk_main2 ();
        
}
0
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
04.02.2012, 20:33 4
сделай
Bash
1
ls -1
0
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
04.02.2012, 20:34  [ТС] 5
извини за глупый вопрос а куда его поставить?
0
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
04.02.2012, 20:44 6
в терминале выполни эту команду и скопируй вывод сюда
0
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
04.02.2012, 20:46  [ТС] 7
gtk_main2
gtk_main2~
gtk_main.c
gtk_main.c~
gtk_main.o
gworld.c~
hworld.c~
lib.h~
libword.h
main.c
main.c~
main.o
makefile
makefile~
world.h~
0
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
04.02.2012, 20:51 8
как видишь, у тебя все же нет файла gtk_main2.c
1
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
04.02.2012, 21:01  [ТС] 9
Спасибо) а щас другая ошибка
gcc -o binary main.o -L. -lib -Wl,-rpath,.
/usr/bin/ld: cannot find -lib
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [binary] Ошибка 1

Добавлено через 2 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Makefile for World project
 
binary: main.o libworld.so
    gcc -o binary main.o -L. -lworld -Wl,-rpath,.
 
main.o: main.c
    gcc -c main.c
 
libworld.so: h_world.o g_world.o
    gcc -shared -o libworld.so h_world.o g_world.o
 
h_world.o: h_world.c
    gcc -c -fPIC h_world.c
 
g_world.o: g_world.c
    gcc -c -fPIC g_world.c
 
clean:
    rm -f *.o *.so binary
вот исходник я его переделывал под себя и gtk+ прибавл к нему еще
0
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
04.02.2012, 21:05 10
по всей видимости, у тебя опять где-то какая-то опечатка.
в приведенном примере видно, что ты компилируешь командой
Bash
1
gcc -o binary main.o -L. -lib -Wl,-rpath
но я сомневаюсь, что у тебя действительно есть файл libib.so
1
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
04.02.2012, 21:11  [ТС] 11
есть файл lib.h

Добавлено через 3 минуты
lib.so есть и lib.h но все равно ошибка gcc -o binary main.o -L. -l -Wl,-rpath,.
/usr/bin/ld: cannot find -l-Wl,-rpath,.
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [binary] Ошибка 1
как я понял он lib.so ищет вот тут /usr/bin/ld хотя он лежит в другой папке
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.02.2012, 21:28 12
Цитата Сообщение от maximus1991 Посмотреть сообщение
-Wl,-rpath,.
должно быть так:
-Wl,-rpath=.
1
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
04.02.2012, 21:36  [ТС] 13
все равно такая ошибка /usr/bin/ld: cannot find -l-Wl,-rpath=.
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [binary] Ошибка 1
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.02.2012, 22:49 14
Цитата Сообщение от maximus1991 Посмотреть сообщение
-l-Wl,-rpath=.
это что такое?! оО
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.02.2012, 22:49
Помогаю со студенческими работами здесь

Как написать правила сборки для Scons
Здравствуйте! Подскажите что я должен прочитать чтобы написать правила сборки проектов на Scons.? Заранее благодарю!

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

Ремонт Прежде, чем начать новую тему... (это ПРАВИЛА, читать ВСЕМ!), Правила для всех участников форума!!!
Назначение форума &quot;********&quot; или &quot;куда это я попал?&quot; Форум предназначен для мастеров, ремонтирующих определённые виды техники....

Выбор карты для данной сборки и оценка сборки
Добрый вечер. Посмотрите пожалуйста сборку. Собираю в регарде. Собираю для игр не требовательных особо и может иногда для стрима (не...

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


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной. Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
Формулы поворота
Igor3D 10.03.2025
Добрый день Тема Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости". x' = x * cos(a) - y * sin(a) y' = y * cos(a) + x * sin(a) Как бы Вы их. . .
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view. string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет! Отправлено 19 февраля 2025 года в 17:20:21 UTC Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home. Мы официально. . .
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru