gtest編譯鏈結錯誤

2022-10-09 04:09:09 字數 390 閱讀 2262

在mac上使用googletest編寫單元測試,不需要額外鏈結pthread。

但是在linux上(github action的預設構建機器ubuntu20.04lts)上,編譯鏈結gtest

需要額外鏈結pthread,

並且,需要注意的是,使用cmake構建時,gtest和pthread鏈結順序

需要先鏈結gtest,在鏈結pthread。

如下所示,

target_link_libraries(template01_test gtest gtest_main pthread) # 沒問題

target_link_libraries(template01_test pthread gtest gtest_main) # 可能會鏈結錯誤

常見編譯鏈結錯誤

1.no such file or directory 首先檢查檔案路徑是否包含,如某標頭檔案不存在,一般是標頭檔案的路徑沒有include進來 其次檢查是否有巨集定義,巨集定義是否已生效。2.in function undefined 一般是鏈結錯誤,所需的的庫沒有鏈結編譯bin檔案時,鏈結了動態...

gtest 編譯安裝

第一步 獲取原始碼 git clone 第二步 安裝cmake工具 yum install cmake 第三步 配置 cd googletest 配置工程 cmake.編譯 生成靜態庫 root xuperior pc googletest make 25 linking cxx static li...

C 編譯,鏈結錯誤總結

c 生成,鏈結錯誤 lnk2001 無法解析的外部符號 tbase.obj error lnk2001 unresolved external symbol public virtual void thiscall tbase show void show tbase uaexxz 出錯原因 tba...