[問題] googletest使用問題

看板C_and_CPP (C/C++)作者 (億載金城武)時間2年前 (2022/09/22 00:06), 編輯推噓9(9043)
留言52則, 9人參與, 最新討論串1/1
想詢問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

09/22 00:18, 2年前 , 1F
你看得懂最後一張圖 有error 啊error在哪?
09/22 00:18, 1F

09/22 00:21, 2年前 , 2F
Compile error log 要從上往下看,你只給最下面的內容
09/22 00:21, 2F

09/22 00:21, 2年前 , 3F
有點難猜,可能你指定的 c++11 跟安裝的 gtest 對不上
09/22 00:21, 3F

09/22 00:21, 2年前 , 4F
?From google test readme: "The 1.12.x branch will
09/22 00:21, 4F

09/22 00:21, 2年前 , 5F
be the last to support C++11. Future releases will
09/22 00:21, 5F

09/22 00:21, 2年前 , 6F
require at least C++14."
09/22 00:21, 6F

09/22 01:06, 2年前 , 7F
Um, 這個訊息有點倒過來的感覺...
09/22 01:06, 7F

09/22 01:06, 2年前 , 8F
他的 makefile 裡面確實指定 c++14 了
09/22 01:06, 8F

09/22 01:08, 2年前 , 9F
但這訊息卻好像是在說 C++11 功能「太新」不支援
09/22 01:08, 9F

09/22 01:08, 2年前 , 10F
原 PO 你確定你在 vscode 裡有執行 makefile 嗎?
09/22 01:08, 10F

09/22 01:08, 2年前 , 11F
還是單純地在 vscode 裡按「編譯」鍵而已?
09/22 01:08, 11F

09/22 01:09, 2年前 , 12F
另外剛才搜到這個 https://stackoverflow.com/a/57341371
09/22 01:09, 12F

09/22 01:10, 2年前 , 13F
原 PO 或許可以參考一下
09/22 01:10, 13F

09/22 04:14, 2年前 , 14F
原 Po 第三張圖最後一行,根本沒有用 make 啊...
09/22 04:14, 14F

09/22 04:14, 2年前 , 15F
Makefile 寫得再好也沒用 orz
09/22 04:14, 15F

09/22 04:16, 2年前 , 16F
而且如果用 make 的話 make 也會報錯,不會只有 g++ 的
09/22 04:16, 16F

09/22 04:16, 2年前 , 17F
錯誤訊息
09/22 04:16, 17F

09/22 08:14, 2年前 , 18F
奇怪,我記得睡前看是 11 的說
09/22 08:14, 18F

09/22 08:26, 2年前 , 19F
抱歉 附上完整error log截圖
09/22 08:26, 19F

09/22 08:26, 2年前 , 20F

09/22 08:26, 2年前 , 21F

09/22 08:26, 2年前 , 22F

09/22 08:26, 2年前 , 23F

09/22 08:26, 2年前 , 24F

09/22 08:26, 2年前 , 25F

09/22 08:31, 2年前 , 26F
我make後跑出來的是
09/22 08:31, 26F

09/22 08:31, 2年前 , 27F
g++ HelloWorld.cpp -o HelloWorld
09/22 08:31, 27F

09/22 08:37, 2年前 , 28F
不是應該也要跑出
09/22 08:37, 28F

09/22 08:37, 2年前 , 29F
g++ -std=c++14 -Wfatal-errors ut_main.cpp -out_a
09/22 08:37, 29F

09/22 08:37, 2年前 , 30F
ll -lgtest-lpthread嗎QQ
09/22 08:37, 30F

09/22 09:09, 2年前 , 31F
你makefile hello:就沒寫c++14 怎麼會有c++14
09/22 09:09, 31F

09/22 09:11, 2年前 , 32F
如果gtest需要c++11以上,compile hello就先error
09/22 09:11, 32F

09/22 09:11, 2年前 , 33F
輪不到ut_all
09/22 09:11, 33F

09/22 09:32, 2年前 , 34F
makefile 的 recipe 開頭要 tab
09/22 09:32, 34F

09/22 09:32, 2年前 , 35F
另外你貼的 error 也不是 make 的結果吧?要手動編的話
09/22 09:32, 35F

09/22 09:32, 2年前 , 36F
就把 makefile 第 11 行 複製過去跑
09/22 09:32, 36F

09/22 11:28, 2年前 , 37F
感謝N大
09/22 11:28, 37F

09/22 11:28, 2年前 , 38F
我成功了!!!!!!!
09/22 11:28, 38F

09/22 11:28, 2年前 , 39F
感謝您!!!!!!!!!!!
09/22 11:28, 39F

09/22 19:53, 2年前 , 40F
然後這裡要來教一個 Makefile 常用技巧: 把編譯參數放變數
09/22 19:53, 40F

09/22 19:54, 2年前 , 41F
例如可以在開頭寫 CXXFLAGS = -std=c++14 -Wfatal-errors
09/22 19:54, 41F

09/22 19:54, 2年前 , 42F
然後編譯指令裡這個地方就用 $(CXXFLAGS) 取代
09/22 19:54, 42F

09/22 19:54, 2年前 , 43F
只要每個編譯指令都記得加這個參照, 所有參數就能一次套用
09/22 19:54, 43F

09/22 19:55, 2年前 , 44F
記一個變數比起記所有參數來得容易
09/22 19:55, 44F

09/22 19:55, 2年前 , 45F
CXXFLAGS 這個名字也是慣例上 (及某程度上的 make 預設)
09/22 19:55, 45F

09/22 19:56, 2年前 , 46F
用來存編譯參數的變數名字; 連結參數類似地有 LINKFLAGS
09/22 19:56, 46F

09/23 12:04, 2年前 , 47F
變數的話可以看make的document
09/23 12:04, 47F

09/23 12:04, 2年前 , 48F
09/23 12:04, 48F

09/23 12:09, 2年前 , 49F
還有像是內建函式和特殊變數,都可以翻翻文件,功能滿多的
09/23 12:09, 49F

09/23 21:51, 2年前 , 50F
謝謝大家熱情的回覆
09/23 21:51, 50F

09/23 21:51, 2年前 , 51F
今天上課老師才說他給的makefile少打了一個ut_all!
09/23 21:51, 51F

01/05 02:13, , 52F
建議用cmake吧 . 學過之後只會覺得手寫makefile太苦了
01/05 02:13, 52F
文章代碼(AID): #1ZApQ0Yq (C_and_CPP)
文章代碼(AID): #1ZApQ0Yq (C_and_CPP)