如何重新configuration​​谷歌testing的32位embedded式软件?

我已经设法根据这个安装Googletesting

我的问题是:我必须testing一个32位操作系统的embedded式软件开发项目,所以我需要重新configurationGoogletesting从64位。

用旧的1.7.0版本知道解决scheme是这样的:

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 

这是否是因为我找不到其他地方的configuration文件,除了terminal中显示的结果与1.7.0版本的重新configuration相同。

但使用后:

 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 

项目的envvariables在makefile中设置为32位,所以不应该是问题。

看着我在想的错误信息:是我的gcc版本吗?

使用我刚刚提到的答案构建32位googletest只需按照相同的步骤,而不是运行:

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

跑:

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

如果你正在64位主机上进行32位googletest的个人安装,那么明确表示它是32位的是一个好主意,例如通过使用类似于:

 -DCMAKE_INSTALL_PREFIX:PATH=/home/me/googletest_32 

我们用我们的应用程序本身来构建Google测试 我们没有使用任何预编译库,我们只需在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位构建它。