Нубвопрос про makefile
Это пытается собрать программу, тебе надо "$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CFLAGS) -c -o $@ $<"
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
Не переопределяй эту переменную, тебе нужна CXX.
Не используй ":=" там, где это не нужно.
> all: $(OBJS)
> $(CC) $(CFLAGS) $(OBJS) -o ./dist/Debug/GNU-Linux-x86/hellowebcam
Не делай этого, старайся определять материальные цели. Например,
$(PROG): $(OBJS); $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LDADD)
all: .PHONY $(PROG)
> LineFinder.o: LineFinder.h LineFinder.cpp
> $(CC) $(CFLAGS) ./LineFinder.cpp
Советую прочитать про встроенные правила и использовать их.
То, что ты делаешь, можно реализовать при помощи файла, наподобие:
CXXFLAGS=-L/usr/local/include
LDLIBS=-lz # или LDFLAGS?
OBJS= some.o file.o
all: .PHONY hello
hello: $(OBJS)
---
Q8: А где это есть и круче?
A8: В VMS!
Оставить комментарий
uaha1979
Задача:скомпилировать файлик и класс
makefile:
main.cpp:
LineFinder.h:
LineFinder.cpp:
Выдает ошибку:
g++ -I/usr/local/include/opencv -L/usr/local/lib -g ./LineFinder.cpp
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/crt1.o: In function `_start':
/home/abuild/rpmbuild/BUILD/glibc-2.17/csu/../sysdeps/x86_64/start.S:119: undefined reference to `main'
collect2: error: ld returned 1 exit status
make: *** [LineFinder.o] Error 1