2016-07-26 14 views
4

我已經設法根據this.如何爲32位嵌入式軟件重新配置Google測試?

我的問題,安裝谷歌測試如下:我一定要考哪些正在爲32位操作系統的嵌入式軟件開發的項目,所以我需要重新配置谷歌從64位進行測試。

在舊版本1.7.0它知道該解決方案是這樣的:

autoreconf -fvi 
./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" 
make 

這是我的新版本現在嘗試:

cd home/CWD/googletest/googlemock 
autoreconf -fvi 
./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" 

cd home/CWD/googletest/googletest 
autoreconf -fvi 
./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" 

cd .. 
mkdir googletest_build 
cd googletest_build 
cmake -DCMAKE_INSTALL_PREFIX:PATH=/home/me/googletest ../googletest 
make 
make install 

這樣做,是因爲我在其他任何地方都找不到配置文件,但終端中顯示的結果與1.7.0版本的重新配置相同。

但是使用後:

make UTEST=yes project_Name 

我得到這個:

Linking... project_Name 
GTEST_LDFLAGS=-L ../../googletest//lib/ -lpthread -lgtest -lgtest_main -lgmock -lstdc++! 
/usr/bin/ld: skipping incompatible ../../googletest//lib//libgtest.a when searching for -lgtest 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../libgtest.a when searching for -lgtest 
/usr/bin/ld: skipping incompatible //usr/lib/libgtest.a when searching for -lgtest 
/usr/bin/ld: cannot find -lgtest 
/usr/bin/ld: skipping incompatible ../../googletest//lib//libgtest_main.a when searching for -lgtest_main 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../libgtest_main.a when searching for -lgtest_main 
/usr/bin/ld: skipping incompatible //usr/lib/libgtest_main.a when searching for -lgtest_main 
/usr/bin/ld: cannot find -lgtest_main 
/usr/bin/ld: skipping incompatible ../../googletest//lib//libgmock.a when searching for -lgmock 
/usr/bin/ld: cannot find -lgmock 
collect2: error: ld returned 1 exit status 

這些項目的env變量設置爲在Makefile 32位,所以這不應該成爲問題。

看着我在想的錯誤消息:它是我的gcc版本嗎?

回答

3

要構建32位googletest使用my answer that you have referred to 只是遵循同樣的程序,但不是運行:

cmake -DCMAKE_INSTALL_PREFIX:PATH=/home/me/googletest ../googletest 

運行:

cmake -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_INSTALL_PREFIX:PATH=/home/me/googletest ../googletest 

如果您正在連個人安裝32 bit 64位主機上的googletest 這將是一個好主意,使它很明顯,它是32位,例如通過使用類似的:

-DCMAKE_INSTALL_PREFIX:PATH=/home/me/googletest_32 
+0

工作順利,謝謝! :) – MattSom

2

我們用我們的應用程序本身建立谷歌測試。我們沒有使用任何預編譯庫,我們只是包含了需要的東西,在我們的構建工具鏈像Makefile中的該片段顯示:

include /opt/foreign_components/gmock-1.7.0/gmock.mk 

OBJ_SERI_BASIC = \ 
     $(GMOCK_OBJ) \ 
     $(COMPONENT_HOME_SERI)/unittest/src/test_virtual.o \ 
     $(COMPONENT_HOME_SERI)/component/name_value_pair.o 

和gmock.mk包含:

GMOCK_PATH=$(HOME)/foreign_components/gmock-1.7.0 

GMOCK_OBJ= \ 
     $(GMOCK_PATH)/fused-src/gmock_main.o \ 
     $(GMOCK_PATH)/fused-src/gmock-gtest-all.o 

GMOCK_INCLUDE=\ 
      -I$(GMOCK_PATH)/fused-src/gmock/ \ 
      -I$(GMOCK_PATH)/fused-src 

因此,任何對構建的標誌和更改也會影響測試框架。所以我們用不同的編譯器,目標以及各種平臺上的64位和32位構建它。

+0

有趣的知道爲1.7.0,所以+1。仍然我被告知[這裏](http://stackoverflow.com/questions/38395984/how-to-install-google-test-on-ubuntu-without-root-access#comment64292387_38409897)1.7.0是一箇舊版本,現在應該使用新的發行版。首先我會嘗試@Mike Kinghan的解決方案,但非常感謝這個解釋! :) – MattSom

+0

@MattSom:我看不出爲什麼這個解決方案不能用於當前的「版本」。有點評論:「+1」?看不到它:-) – Klaus

+0

現在我看不到任何東西,因爲我真的是Google Test的新手。邁克已經提出了建議,我想按照這種方式去嘗試,直到看起來我需要另一個角度。關於upvote:它保存在那裏,但它表示它不會顯示,直到我有15個聲望點。 – MattSom