URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 1034
[ Назад ]

Исходное сообщение
"make, создание makefile"

Отправлено Cker , 12-Окт-02 22:50 
Необходимо откомпилить c-шникс подключением к нему библиотек для работы с mysql (include <mysql.h>).
При выполнении подряд двух строчек, все работает ок:
gcc -c -I/usr/local/include/mysql some.c
gcc -o some some.o -L/usr/local/lib/mysql

пытаюсь создать makefile:
CC = gcc
INCLUDES = -I/usr/local/include/mysql
LIBS = -L/usr/local/lib/mysql
all: some
  $(CC) = -c $(INCLUDES) some.c
some: some.o
  $(CC) -o some some.o $(LIBS)
clean:
  rm -f some some.o

При выполнении команды "make" три ошибко, мол в 6,8,10 строчках нет команд. Исправляю так:

CC = gcc
INCLUDES = -I/usr/local/include/mysql
LIBS = -L/usr/local/lib/mysql
all: some
  rez = $(CC) = -c $(INCLUDES) some.c
some: some.o
  rez = $(CC) -o some some.o $(LIBS)
clean:
  rez = rm -f some some.o

В этом случае ошибка о том, что в моем "some.c" не найдена библиотека "mysql.h".


Содержание

Сообщения в этом обсуждении
"RE: make, создание makefile"
Отправлено Арлекин , 14-Окт-02 08:16 
>Необходимо откомпилить c-шникс подключением к нему библиотек для работы с mysql (include <mysql.h>).
>При выполнении подряд двух строчек, все работает ок:
>gcc -c -I/usr/local/include/mysql some.c
>gcc -o some some.o -L/usr/local/lib/mysql
>
>пытаюсь создать makefile:
>CC = gcc
>INCLUDES = -I/usr/local/include/mysql
>LIBS = -L/usr/local/lib/mysql
>all: some
>  $(CC) = -c $(INCLUDES) some.c
>some: some.o
>  $(CC) -o some some.o $(LIBS)
>clean:
>  rm -f some some.o
>
>При выполнении команды "make" три ошибко, мол в 6,8,10 строчках нет команд.
>Исправляю так:
>
>CC = gcc
>INCLUDES = -I/usr/local/include/mysql
>LIBS = -L/usr/local/lib/mysql
>all: some
>  rez = $(CC) = -c $(INCLUDES) some.c
>some: some.o
>  rez = $(CC) -o some some.o $(LIBS)
>clean:
>  rez = rm -f some some.o
>
>В этом случае ошибка о том, что в моем "some.c" не найдена
>библиотека "mysql.h".

По-моему ты c таргетами напутал. all собирает все и зависит от наличия/изменений в объектных модулях (some.о), тогда компилять надо в some.о и собирать в all:
...
all: some.o
$(CC) -o some some.o $(LIBS)
some.o: some.c
$(CC) = -c $(INCLUDES) some.c
...
Я последние полгода больше джявой живу, но там ant точно также устроен идеологически. Хотя может чего и забыл.


"RE: make, создание makefile"
Отправлено Huricane , 23-Окт-02 13:16 
>>Необходимо откомпилить c-шникс подключением к нему библиотек для работы с mysql (include <mysql.h>).
>>При выполнении подряд двух строчек, все работает ок:
>>gcc -c -I/usr/local/include/mysql some.c
>>gcc -o some some.o -L/usr/local/lib/mysql
>>
>>пытаюсь создать makefile:
>>CC = gcc
>>INCLUDES = -I/usr/local/include/mysql
>>LIBS = -L/usr/local/lib/mysql
>>all: some
>>  $(CC) = -c $(INCLUDES) some.c
>>some: some.o
>>  $(CC) -o some some.o $(LIBS)
>>clean:
>>  rm -f some some.o
>>
>>При выполнении команды "make" три ошибко, мол в 6,8,10 строчках нет команд.
>>Исправляю так:
>>
>>CC = gcc
>>INCLUDES = -I/usr/local/include/mysql
>>LIBS = -L/usr/local/lib/mysql
>>all: some
>>  rez = $(CC) = -c $(INCLUDES) some.c
>>some: some.o
>>  rez = $(CC) -o some some.o $(LIBS)
>>clean:
>>  rez = rm -f some some.o
>>
>>В этом случае ошибка о том, что в моем "some.c" не найдена
>>библиотека "mysql.h".
>
>По-моему ты c таргетами напутал. all собирает все и зависит от наличия/изменений
>в объектных модулях (some.о), тогда компилять надо в some.о и собирать
>в all:
>...
>all: some.o
>$(CC) -o some some.o $(LIBS)
>some.o: some.c
>$(CC) = -c $(INCLUDES) some.c
>...
>Я последние полгода больше джявой живу, но там ant точно также устроен
>идеологически. Хотя может чего и забыл.

А файлики то корявые :)))