我编写了一个我需要为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)
答案 0 :(得分:0)
yocto会导出CXX标记,只需删除Make文件中的CXX标记定义。
答案 1 :(得分:0)
Yocto已经导出了一些变量,比如CXXFLAGS,所以你不应该在你的Makefile中覆盖它。