[問題] Makefile入門使用在linux環境

看板C_and_CPP (C/C++)作者 (阿榮)時間6年前 (2019/05/24 10:55), 編輯推噓4(404)
留言8則, 6人參與, 6年前最新討論串1/1
開發平台(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): nvidia@tegra-ubuntu:/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 $@ # 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): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.38.5 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1558666546.A.705.html

05/24 11:42, 6年前 , 1F
make 指令失敗的訊息是?注意這指令是全小寫
05/24 11:42, 1F

05/24 11:43, 6年前 , 2F
噢,看到錯誤訊息了。這是無法建立 obj/build目錄
05/24 11:43, 2F

05/24 11:44, 6年前 , 3F
檢查 obj 或其所在目錄的權限
05/24 11:44, 3F

05/24 13:04, 6年前 , 4F
下sudo看看?
05/24 13:04, 4F

05/24 14:24, 6年前 , 5F
有,下sudo就可以了
05/24 14:24, 5F

05/26 21:44, 6年前 , 6F
sudo不是萬靈丹,研究一下權限吧~
05/26 21:44, 6F

05/29 00:00, 6年前 , 7F
下了sudo 以後你什麼都得sudo 別亂下比較好 XD
05/29 00:00, 7F

05/29 15:25, 6年前 , 8F
chmod directory
05/29 15:25, 8F
文章代碼(AID): #1SvrqoS5 (C_and_CPP)
文章代碼(AID): #1SvrqoS5 (C_and_CPP)