Linker 如何将OpenWRT包与libstdcpp链接

Linker 如何将OpenWRT包与libstdcpp链接,linker,cross-compiling,openwrt,Linker,Cross Compiling,Openwrt,我有一个helloworld包,我可以使用openwrt buildroot为ramips设备成功构建它。在Makefile中,我有一个特殊的include(ulibc)和一个特殊的依赖项(dependens:=+libc)。软件包在设备上构建并工作。 现在,我需要在helloworld包中包含gSoap生成的代码,但随后出现链接错误: undefined reference to `std::ios_base::Init::Init()' 在这种情况下我能做什么?下一步-添加openssl支

我有一个helloworld包,我可以使用openwrt buildroot为ramips设备成功构建它。在Makefile中,我有一个特殊的include(ulibc)和一个特殊的依赖项(dependens:=+libc)。软件包在设备上构建并工作。 现在,我需要在helloworld包中包含gSoap生成的代码,但随后出现链接错误:

undefined reference to `std::ios_base::Init::Init()'

在这种情况下我能做什么?下一步-添加openssl支持和WS-Security,它能在OpenWRT设备上工作吗?

您应该将gSoap作为单独的包添加到OpenWRT中,然后将其作为依赖项添加到helloworld包中(就像您为libc所做的那样)

您应该将gSoap作为单独的包添加到Openwrt中,然后将其作为依赖项添加到helloworld包中(就像您为libc所做的那样)

我解决了我的问题:

  • 将我的包源代码的Makefile中的编译器从$(CC)更改为 $(CXX)+$(CFLAGS)到$(CXXFLAGS)

  • 在package.mk之前包含uClibc++.mk

  • 仅添加一个依赖项:依赖项:=+uclibcxx

  • 在此之后,LNK错误被修复。谢谢@amine.ahd

    我解决了我的问题:

  • 将我的包源代码的Makefile中的编译器从$(CC)更改为 $(CXX)+$(CFLAGS)到$(CXXFLAGS)

  • 在package.mk之前包含uClibc++.mk

  • 仅添加一个依赖项:依赖项:=+uclibcxx


  • 在此之后,LNK错误被修复。谢谢@amine.ahd

    但当我尝试构建单独的gSoap包时,我会遇到同样的链接问题——它的源代码需要libstdcpp。不是吗?Openwrt中已经有一个
    libstdcpp
    的包,请检查您可以尝试使用
    uClibc++
    ,它比
    libstdcpp
    更轻。但是当我尝试构建单独的gSoap包时,我会遇到同样的链接问题-它的源代码需要libstdcpp。不是吗?Openwrt中已经有一个
    libstdcpp
    的包,请检查您可以尝试使用
    uClibc++
    ,它比
    libstdcpp
    轻。