我正在构建一个同时针对Debian 64位和Debian armhf(Raspberry)的WxWidget应用程序。我正在使用eclipse作为在Debian 9.4 Virtualbox中运行的IDE。 VB主机是Windows10。
eclipse工作空间组织为树项目:
在两个64位的armhf项目中,源代码都是从公共项目中链接进来的。
我使用以下命令为64位安装了WxWidgets:
sudo apt install libwxgtk3.0-dev
现在,64位项目可以正确编译,并且可执行文件在Debian64下可以正常工作。
接下来,我想为armhf进行交叉编译,所以
sudo apt install libwxgtk3.0-dev:armhf
现在,armhf项目可以正确编译,并且可执行文件在Raspberry Pi上运行正常。
但是,64位项目的编译被破坏了...
显然,在名为
的文件中定义/声明了WxWidget的特定于平台的设置。setup.h
此文件位于
/ usr / lib / 平台 /wx/include/gtk2-unicode-3.0/wx /
其中 PLATFORM 是Debian64的x86_64-linux-gnu或Debian armhf的arm-linux-gnueabihf。
我的观察是,安装一个版本的开发包会安装正确的setup.h,但还会删除另一个版本...
那么,如何为两个平台的多体系结构编译设置WxWidgets?
预先感谢
保罗
答案 0 :(得分:0)
您需要从armhf存储库中安装wxWidgets,或者使用该体系结构的交叉编译器自己构建它。
我希望当您尝试从其他存储库安装时,安装也将在其他目录中进行。如果不是,则应为apt-get
提供脚本要安装软件包的目录。
答案 1 :(得分:0)
原则上,这应该使用--host
的{{1}}选项起作用,即,想法是将wx-config
用于一个平台,将wx-config --host=x86_64 --cxxflags --libs
用于另一个平台。但是我不知道这是否适用于Debian软件包。
如果无法使其与它们一起使用,则可以在wx-config --host=armhf
和~/build/wx/x86_64-gtk2
这样的不同构建目录中构建自己的库。然后,您可以只使用~/build/wx/armhf-gtk2
而不安装任何库。