[問題] googletest使用問題

作者: vic147569az (億載金城武)   2022-09-22 00:06:22
想詢問Mac 使用googletest問題
這學期修習物件導向程式設計
老師要求我們安裝googletest
但我安裝完後卻無法順利執行
原本預計要跑出ut_all檔的
但現在啥都跑不出來QQ
想請問大家我在那一部分設定錯誤了嗎?
謝謝大家!
https://i.imgur.com/vdLMiOX.png
https://i.imgur.com/oJPIEdO.png
https://i.imgur.com/hxt6qCI.png
作者: tomsawyer (安安)   2022-09-22 00:18:00
你看得懂最後一張圖 有error 啊error在哪?
作者: Lipraxde (Lipraxde)   2022-09-22 00:21:00
Compile error log 要從上往下看,你只給最下面的內容有點難猜,可能你指定的 c++11 跟安裝的 gtest 對不上?From google test readme: "The 1.12.x branch willbe the last to support C++11. Future releases willrequire at least C++14."
作者: LPH66 (-6.2598534e+18f)   2022-09-22 01:06:00
Um, 這個訊息有點倒過來的感覺...他的 makefile 裡面確實指定 c++14 了但這訊息卻好像是在說 C++11 功能「太新」不支援原 PO 你確定你在 vscode 裡有執行 makefile 嗎?還是單純地在 vscode 裡按「編譯」鍵而已?另外剛才搜到這個 https://stackoverflow.com/a/57341371原 PO 或許可以參考一下
作者: CoNsTaR ((const *))   2022-09-22 04:14:00
原 Po 第三張圖最後一行,根本沒有用 make 啊...Makefile 寫得再好也沒用 orz而且如果用 make 的話 make 也會報錯,不會只有 g++ 的錯誤訊息
作者: Lipraxde (Lipraxde)   2022-09-22 08:14:00
奇怪,我記得睡前看是 11 的說
作者: vic147569az (億載金城武)   2022-09-22 08:26:00
抱歉 附上完整error log截圖https://i.imgur.com/2MRZXeY.jpghttps://i.imgur.com/Aj0a1kB.jpghttps://i.imgur.com/bAlSQhq.jpghttps://i.imgur.com/bpkZG22.jpghttps://i.imgur.com/jHjso9F.jpghttps://i.imgur.com/EGh1vnx.jpg我make後跑出來的是g++ HelloWorld.cpp -o HelloWorld不是應該也要跑出g++ -std=c++14 -Wfatal-errors ut_main.cpp -out_all -lgtest-lpthread嗎QQ
作者: lycantrope (阿寬)   2022-09-22 09:09:00
你makefile hello:就沒寫c++14 怎麼會有c++14如果gtest需要c++11以上,compile hello就先error輪不到ut_all
作者: NciscalA   2022-09-22 09:32:00
makefile 的 recipe 開頭要 tab另外你貼的 error 也不是 make 的結果吧?要手動編的話就把 makefile 第 11 行 複製過去跑
作者: vic147569az (億載金城武)   2022-09-22 11:28:00
感謝N大我成功了!!!!!!!感謝您!!!!!!!!!!!
作者: LPH66 (-6.2598534e+18f)   2022-09-22 19:53:00
然後這裡要來教一個 Makefile 常用技巧: 把編譯參數放變數例如可以在開頭寫 CXXFLAGS = -std=c++14 -Wfatal-errors然後編譯指令裡這個地方就用 $(CXXFLAGS) 取代只要每個編譯指令都記得加這個參照, 所有參數就能一次套用記一個變數比起記所有參數來得容易CXXFLAGS 這個名字也是慣例上 (及某程度上的 make 預設)用來存編譯參數的變數名字; 連結參數類似地有 LINKFLAGS
作者: gusion   2022-09-23 12:04:00
變數的話可以看make的documenthttps://reurl.cc/KQo1zg還有像是內建函式和特殊變數,都可以翻翻文件,功能滿多的
作者: vic147569az (億載金城武)   2022-09-23 21:51:00
謝謝大家熱情的回覆今天上課老師才說他給的makefile少打了一個ut_all!
作者: arshuan (阿軒)   2021-01-05 02:13:00
建議用cmake吧 . 學過之後只會覺得手寫makefile太苦了

Links booklink

Contact Us: admin [ a t ] ucptt.com