我的需求很簡單。我必須在使用MinGW和msys的Windows上編譯和使用googletest。有沒有人有這樣的經驗?如何使用mingw與msys在Windows上編譯googletest?
感謝您的回答。
我的需求很簡單。我必須在使用MinGW和msys的Windows上編譯和使用googletest。有沒有人有這樣的經驗?如何使用mingw與msys在Windows上編譯googletest?
感謝您的回答。
我花了一些時間,但我明白了。這是面向同樣問題的人的指南。
爲了能夠編譯GoogleTest在Windows按照此說明:
我假設你有MinGW的MSYS與istalled。
從官方網站http://www.cmake.org/下載並安裝CMake。使用Win32安裝程序 版本。完成安裝過程後,將可執行文件 「xxx/CMake/bin」複製到「xxx/MinWG/bin」。
從http://www.python.org/下載並安裝Python。 Windows安裝程序再次執行 的工作。 完成安裝過程後,將「python.exe」 表單python文件夾複製到 「xxx/MinWG/bin」。
從http://code.google.com/p/googletest/下載最新穩定的GoogleTest並將其解壓縮到某個文件夾中。
運行MSYS終端並執行以下命令。
cd xxx/gtest-x.x.x
cmake -G "MSYS Makefiles"
make
如果從並行線程編譯錯誤遵循these說明。
將包含文件夾「xxx/gtest-x.x.x/include」複製到MinGW gcc include中。 將庫文件「xxx/gtest-x.x.x/*。a」複製到MinGW gcc庫中。
當您編譯測試時,向gcc添加「-lgtest」參數。
編輯 評論家是正確的。可執行文件的處理對我來說很有效,但通常這不是一種好的做法。嘗試使用symbolic link代替。
作爲替代方案,使用通常的MSYS/Mingw make也可以構建googletest。
因此,這裏是我的另一種方式:
確保MSys的/ MingW平臺上安裝了Windows和PATH環境設置爲它
打開一個cmd窗口 - 你可以設置PATH這裏明確以及
CD解壓的目錄googletest
呼叫配置Wi (部分MSys):sh configure
請致電make
- >libgtest.a
應該建立。它被放置在您的googletest目錄中lib/.libs
子目錄
請參閱googletest的README以瞭解如何將libgtest.a
集成到您的系統。另請參閱如何編譯googletest wiki中的googletest primer。或者,爲gcc 指定庫路徑,並添加-lgtest
以鏈接您的測試項目可執行文件。
當使用ASSERT_DEATH
宏來檢查斷言在您的測試代碼(這意味着斷言在您的lib或應用程序,而不是在googletest),撥打SetErrorMode
- 例如主:
#include <windows.h>
#include "gtest/gtest.h"
int main (int argc, char** argv)
{
// this prevents annoying error message boxes popping up
// when assert is called in your program code
SetErrorMode(SEM_NOGPFAULTERRORBOX);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
你不」只要你有你的路徑,就需要複製二進制文件。安裝python和CMake。在你的msys(MinGW控制檯)中測試它們
which cmake
which python
如果你看到路徑,那麼你有二進制文件。如果沒有,添加自己的路徑,你的環境變量> PATH或MSYS內只需要更新(更新安裝路徑,如果需要的話)
export PATH=$PATH:/c/Program Files (x86)/CMake/bin/cmake.exe:/c/Python27/python.exe
然後你就可以建立的建議:
cd xxx/gtest-x.x.x
cmake -G "MSYS Makefiles"
make
測試,如果一切正常:
cd make
make
./sample1_unittest.exe
要建立一個沒有cmake的/蟒蛇libgtest.a,但只用MinGW的製作,GTEST現在有一個普通的舊的makefile中有一個「讓」的文件夾。
創建的庫是不產生DLL的全靜態庫。
這應該是全部。
順便說一句,這也適用於建設googlemock,只需輸入googlemock文件夾,而不是googletest,並按照相同的程序。
謝謝@ jesper-matthiesen它的工作。如果有人面臨ld.exe的錯誤,則不能找到lpthread。嘗試運行mingw-get install libpthreadgc-dev,如[link](http://mingw-users.1079350.n2.nabble.com/GCC-doesn-t-work-quot-ld-exe-cannot-發現-lpthread-QUOT-td7584243.html)。謝謝 – 2018-02-23 20:21:49
請說明發生了什麼問題。 – LumpN 2011-03-09 17:08:40
我已經取得了一些進展。它似乎不能沒有我沒有的python安裝。我現在正在試圖解決它。 – 2011-03-09 18:20:43