ACE + TAO/OpenDDS支持64位GCC工具链吗?
ACE + TAO:6.3.2
OpenDDS:3.11
主机编译器:GCC 5.4ACE + TAO/OpenDDS支持64位GCC工具链吗?
正如我交叉编译为Android OpenDDS,我期待在ACE_wrappers /编译/ ARM /包括/ makeinclude/platform_android 。GNU似乎为ACE进行交叉编译,似乎只为ARM-v7a构建。
我之所以这样说,是因为在编译我的应用程序中的自动生成文件((它来自使用* .idl上的opendds_idl)时出现以下错误),以及一堆“In从”行包含的文件,当我编译代码带来了一些错误国旗的CPU架构之前结束了......
[exec] /home/me/tools/crystax-ndk/sources/cxx-stl/gnu-libstdc++/5/include/limits:1601:7: internal compiler error: Illegal instruction
[exec] max() _GLIBCXX_USE_NOEXCEPT { return __FLT_MAX__; }
[exec] ^
我见过这样的事情。所以我的想法是,也许有在我的应用上使用的GCC上的一些不兼容的工具链设置,以及ACE + TAO/OpenDDS使用的那些设置?platform_android.GNU中的CROSS_COMPILE变量是arm-linux-androideabi- ......据我所知,它是一个32位工具链,即arm-v7a,我看不到v8a r eferences。然而在我的应用程序中,我使用的是aarch64-linux-android-5。这些应该兼容吗?工具链可以更改吗?
我想要做的是为目标架构和ABI构建ACE + TAO/OpenDDS/my-application ... arm64:arm64-v8a并使用NDK工具链和目标ABI ... aarch64-linux -android-5:arm64-v8a。
想法?
这应该是可能的,但可能配置文件已过时。首先,更新最新的ACE + TAO 6.3.4。其次,检查include/makeinclude/platform_android.GNU文件,看看你的目标是否在那里。这可能是一些小的更新是必要的,如果是这样,请打开一个拉请求https://github.com/DOCGroup/ACE_TAO进行必要的更改。搜索arm-v7a并查看该地点是否需要检查arm-v8a。
会做一个拉取请求,对platform_android.GNU进行更新。 – Ender
创建请求。 – Ender
合并您的pull请求,将成为下一个ACE/TAO微版本的一部分(尚未安排) –