我想将我的AMD64桌面交叉编译为ARM7 for Beagleboard Black。所以我从这开始就安装了交叉编译器:
<div class="form-group">
<%= f.label :cardinal_point_id, "Orientacion:", :class => "control-label" %>
<%= f.select :cardinal_point_id , CardinalPoint.all.collect {|p| [ p.name, p.id ] }, { :include_blank => 'Seleccione un Punto Cardinal'}, :class => "form-control" %>
</div>
我还创建了一个cmake工具链文件:
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
当我运行cmake时,我发现它确实找到了正确的编译器。但是,我如何处理需要链接的库?例如,提升?我假设我需要在我的x86 / amd64桌面上使用这些库的arm版本,以便编译和链接工作。
以下是我尝试运行cmake时看到的错误消息示例:
set (CMAKE_SYSTEM_NAME Linux)
set (CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set (CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
答案 0 :(得分:2)
是的,您需要不是仅为ARM构建的标头的boost库。 这个问题涉及:cross compile Boost 1.57.0 on ubuntu for arm
要使find_package
之类的内容适用于交叉编译,您应该设置CMAKE_FIND_ROOT_PATH
。
假设您将CMAKE_FIND_ROOT_PATH
设置为/opt/beagleboard
。然后,CMake将首先在/opt/beagleboard/lib
和/opt/beagleboard/usr/lib
查找库,因此请在那里安装库,它应该可以正常工作。
可以在http://www.vtk.org/Wiki/CMake_Cross_Compiling找到与交叉编译相关的各种CMake设置的详细说明。