如何为32位嵌入式软件重新配置Google测试?

问题描述:

我已经设法根据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版本吗?

要构建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

我们用我们的应用程序本身建立谷歌测试。我们没有使用任何预编译库,我们只是包含了需要的东西,在我们的构建工具链像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