cppunit 找不到 c++11 库

cppunit can't find c++11 libs

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

C代码时一切正常;而且我没有使用动态库。

如果相关,我需要使用 cppunit。我已经将它添加到我的 rpi-basic-image 中并添加了:

    DEPENDS = "cppunit".

我的制作文件

    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 库

/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib/libcppunit.so: 对 `std 的未定义引用::invalid_argument::invalid_argument(std::__cxx11::basic_string, std::allocator > const&)@GLIBCXX_3.4.21'

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

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

yocto 默认导出 CXX 标志,您只需在 Make 文件中删除 CXX 标志定义。

Yocto 已经导出了一些变量,例如 CXXFLAGS,因此您不应在 Makefile 中覆盖它。