Raspberry pi 针对Debian 64和Debian armhf的交叉编译WxWidget应用程序

Raspberry pi 针对Debian 64和Debian armhf的交叉编译WxWidget应用程序,raspberry-pi,debian,cross-platform,wxwidgets,Raspberry Pi,Debian,Cross Platform,Wxwidgets,我正在构建一个针对Debian 64位和Debian armhf(Raspberry)的WxWidget应用程序。我使用eclipse作为运行在Debian9.4VirtualBox中的IDE。VB主机是Windows10 eclipse工作区组织为树项目: 为Debian 64位体系结构设置的一个项目 为Debian armhf体系结构设置的一个项目(使用multiarch) 一个具有公共源文件的项目 在两个64位的armhf项目中,源代码都是从公共项目链接进来的 我使用以下命令安装了64位的

我正在构建一个针对Debian 64位和Debian armhf(Raspberry)的WxWidget应用程序。我使用eclipse作为运行在Debian9.4VirtualBox中的IDE。VB主机是Windows10

eclipse工作区组织为树项目:

  • 为Debian 64位体系结构设置的一个项目
  • 为Debian armhf体系结构设置的一个项目(使用multiarch)
  • 一个具有公共源文件的项目
  • 在两个64位的armhf项目中,源代码都是从公共项目链接进来的

    我使用以下命令安装了64位的WxWidgets:

    sudo apt install libwxgtk3.0-dev
    
    现在,64位项目编译无误,可执行文件在Debian64下运行良好

    接下来,我喜欢交叉编译armhf,所以

    sudo apt install libwxgtk3.0-dev:armhf
    
    现在,armhf项目编译无误,可执行文件在Raspberry Pi上运行良好

    然而,64位项目的编译被破坏了

    显然,WxWidgets的特定于平台的设置是在一个名为

    设置.h

    此文件位于

    /usr/lib/平台/wx/include/gtk2-unicode-3.0/wx/

    其中,平台是针对Debian64的x86_64-linux-gnu或针对Debian armhf的arm linux gnueabihf

    我的观察是,安装一个版本的开发包会安装正确的setup.h,但也会删除另一个版本

    那么,如何为两种平台的多拱编译设置WxWidgets呢

    提前感谢,


    Paul

    您需要从armhf存储库安装wxWidgets,或者使用该体系结构的交叉编译器自己构建它


    我希望当您尝试从不同的存储库安装时,安装也会发生在不同的目录中。如果不是,您应该给
    apt get
    您希望脚本安装包的目录。

    原则上,这应该使用
    wx config的
    --host
    选项工作,也就是说,一个平台使用
    wx config--host=x86_64--cxflags--libs
    ,另一个平台使用
    wx config--host=armhf
    。但是我不知道这是否适用于Debian软件包

    如果无法使用它们,可以在不同的构建目录中构建自己的库,例如
    ~/build/wx/x86_64-gtk2
    ~/build/wx/armhf-gtk2
    。然后您可以只使用
    ~/build/wx/$arch-gtk2/wx config
    ,而无需安装库