[问题] Makefile入门使用在linux环境

楼主: chuinzong (阿荣)   2019-05-24 10:55:44
开发平台(Platform): (Ex: Win10, Linux, ...)
Linux Ubuntu 16.04
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Terminal & QT
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
厂商相机驱动程式
问题(Question):
目前拿到厂商提供的相机资料,欲执行范例程式,想要问两个问题
档案包如图
https://imgur.com/a/ZD6EgUe
(1)在Terminal中,要下何种指令,可以执行Makefile程式去执行
测试Make指令也失败
(2)在QT要使用,怎么确认Makefile档案,
是.h跟.so档案,是要将所有LIB路径都包括
还是要怎测试
喂入的资料(Input):
[email protected]:/usr/src/spinnaker/src/Acquisition$ make
预期的正确结果(Expected Output):
错误结果(Wrong Output):
mkdir: cannot create directory 'obj/build' Permission denied
Makefile:55: recipe for target '.obj/build/Acquisition.o' failed
make: *** [.obj/build/Acquisition.o] Error 1
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
Makefile
################################################################################
# Acquisition Makefile
################################################################################
PROJECT_ROOT=../../
OPT_INC = ${PROJECT_ROOT}/common/make/common_spin.mk
-include ${OPT_INC}
################################################################################
# Key paths and settings
################################################################################
CFLAGS += -std=c++11
ifeq ($(wildcard ${OPT_INC}),)
CXX = g++ ${CFLAGS}
ODIR = .obj/build${D}
SDIR = .
MKDIR = mkdir -p
PLATFORM = $(shell uname)
ifeq ($(PLATFORM),Darwin)
OS = mac
endif
endif
OUTPUTNAME = Acquisition${D}
OUTDIR = ../../bin
################################################################################
# Dependencies
################################################################################
# Spinnaker deps
SPINNAKER_LIB = -L../../lib -lSpinnaker${D} ${SPIN_DEPS}
################################################################################
# Master inc/lib/obj/dep settings
################################################################################
_OBJ = Acquisition.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))
INC = -I../../include -I/usr/include/spinnaker
ifneq ($(OS),mac)
LIB += -Wl,-Bdynamic ${SPINNAKER_LIB}
LIB += -Wl,-rpath-link=../../lib
else
LIB += -rpath ../../lib/
LIB += ${SPINNAKER_LIB}
endif
################################################################################
# Rules/recipes
################################################################################
# Final binary
${OUTPUTNAME}: ${OBJ}
${CXX} -o ${OUTPUTNAME} ${OBJ} ${LIB}
mv ${OUTPUTNAME} ${OUTDIR}
# Intermediate object files
${OBJ}: ${ODIR}/%.o : ${SDIR}/%.cpp
@${MKDIR} ${ODIR}
${CXX} ${CFLAGS} ${INC} -Wall -D LINUX -c $< -o [email protected]
# Clean up intermediate objects
clean_obj:
rm -f ${OBJ}
@echo "intermediate objects cleaned up!"
# Clean up everything.
clean: clean_obj
rm -f ${OUTDIR}/${OUTPUTNAME}
@echo "all cleaned up!"
补充说明(Supplement):
作者: LPH66 (-6.2598534e+18f)   2019-05-24 11:42:00
make 指令失败的讯息是?注意这指令是全小写噢,看到错误讯息了。这是无法建立 obj/build目录检查 obj 或其所在目录的权限
作者: achicn3 (Sher)   2019-05-24 13:04:00
下sudo看看?
楼主: chuinzong (阿荣)   2019-05-24 14:24:00
有,下sudo就可以了
作者: jack82822005 (小郭郭)   2019-05-26 21:44:00
sudo不是万灵丹,研究一下权限吧~
作者: Killercat (杀人猫™)   2019-05-29 00:00:00
下了sudo 以后你什么都得sudo 别乱下比较好 XD
作者: chengcti (版主请投我一票!)   2019-05-29 15:25:00
chmod directory

Links booklink

Contact Us: admin [ a t ] ucptt.com