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