cppunit找不到c ++ 11库

时间:2017-12-18 17:00:30

标签: c++ makefile cross-compiling yocto bitbake

我编写了一个我需要为raspberry-pi3编译的程序,必须使用bitbake进行编译。

当我写C代码时,一切都很好;我没有使用动态库。

如果相关,我需要使用cppunit。我已将其添加到rpi-basic-image并添加:

    DEPENDS = "cppunit".

我的make文件

    CXX = arm-linux-gnueabi-g++
    INCLUDES= -I./
    CXXFLAGS = -g $(INCLUDES)
    SRCM= CBasicMath.cpp
    OBJM = $(SRCM:.cpp=.o)
    LINKFLAGS= -lcppunit
    testbasicmath: TestBasicMath.cpp $(OBJM)
        $(CXX) $(CXXFLAGS) -o $@ TestBasicMath.cpp $(OBJM) $(LINKFLAGS) $(LINKFLAGSLOG4) $(LIBLOG)
    # Default compile
    .cpp.o:
        $(CXX) $(CXXFLAGS) -c $< -o $@
    install:
        $(INSTALL) -m 755 testbasicmath ${sbindir}/testbasicmath; 
    clean:
        rm -f *.o *.xml testbasicmath

cppunit找不到c ++ 11 libs

/usr/lib/gcc-cross/arm-linux-gnueabi/4.7 /../../../../臂-Linux的gnueabi / lib中/../ LIB / libcppunit。 so:未定义引用`std :: invalid_argument :: invalid_argument(std :: __ cxx11 :: basic_string,std :: allocator&gt; const&amp;)@ GLIBCXX_3.4.21'

$ arm-linux-gnueabi-g++ -v

Thread model: posix
gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) 

2 个答案:

答案 0 :(得分:0)

默认情况下,

yocto会导出CXX标记,只需删除Make文件中的CXX标记定义。

答案 1 :(得分:0)

Yocto已经导出了一些变量,比如CXXFLAGS,所以你不应该在你的Makefile中覆盖它。