关于将VXL移植到android的错误

时间:2012-09-28 01:47:31

标签: android cmake

我想将VXL(Vision-something-Libraries)移植到android平台。我使用的交叉编译器是android-cmake。 您可以从网址http://vxl.sourceforge.net/获取VXL。我使用的版本是vxl-1.14.0 你可以从网址http://code.google.com/p/android-cmake/

获取android-camke

当我正确设置我的NDK for cmake,并指定独立工具链作为android-camke的介绍。然后,我使用andriod-camke来编译VXL。但是我遇到很多错误。它无法生成Makefile 。有人知道为什么吗?

接下来是错误日志。

l00138375@l00138375:/home/hm/build-vxl$ android-cmake ../vxl-1.14.0
CMake Warning at /home/hm/android/android-cmake/toolchain/android.toolchain.cmake:281 (message):
  Using value of obsolete variable ANDROID_NDK_TOOLCHAIN_ROOT as initial
  value for ANDROID_STANDALONE_TOOLCHAIN.  Please note, that
  ANDROID_NDK_TOOLCHAIN_ROOT can be completely removed in future versions of
  the toolchain.
Call Stack (most recent call first):
  /home/hm/android/android-cmake/toolchain/android.toolchain.cmake:376 (__INIT_VARIABLE)
  /usr/share/cmake-2.8/Modules/CMakeDetermineSystem.cmake:89 (INCLUDE)
  CMakeLists.txt:13 (PROJECT)

........

-- Check if the system is big endian - little endian
-- Performing Test VCL_CHAR_IS_SIGNED
CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately:
   VCL_CHAR_IS_SIGNED (advanced)
   VCL_CHAR_IS_SIGNED__TRYRUN_OUTPUT (advanced)
For details see /home/hm/build-vxl/TryRunResults.cmake
-- Performing Test VCL_CHAR_IS_SIGNED - Failed
-- Looking for 8-bit int. [Checking char...]
CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately:
   RUN_RESULT (advanced)
   RUN_RESULT__TRYRUN_OUTPUT (advanced)
For details see /home/hm/build-vxl/TryRunResults.cmake
.........
-- Performing Test VCL_NUMERIC_LIMITS_HAS_INFINITY
CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately:
   VCL_NUMERIC_LIMITS_HAS_INFINITY (advanced)
   VCL_NUMERIC_LIMITS_HAS_INFINITY__TRYRUN_OUTPUT (advanced)
For details see /home/hm/build-vxl/TryRunResults.cmake
-- Performing Test VCL_NUMERIC_LIMITS_HAS_INFINITY - Failed
-- Performing Test VCL_PROCESSOR_HAS_INFINITY
CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately:
   VCL_PROCESSOR_HAS_INFINITY (advanced)
   VCL_PROCESSOR_HAS_INFINITY__TRYRUN_OUTPUT (advanced)
For details see /home/hm/build-vxl/TryRunResults.cmake
-- Performing Test VCL_PROCESSOR_HAS_INFINITY - Failed
-- Looking for C++ include inttypes.h
-- Looking for C++ include inttypes.h - found
-- Looking for memalign
-- Looking for memalign - found
-- Could NOT find DC1394 (missing:  DC1394_LIBRARIES DC1394_INCLUDE_DIR) 
-- Performing Test DIRECTSHOW_SOURCE_COMPILES
-- Performing Test DIRECTSHOW_SOURCE_COMPILES - Failed
CMake Error at config/cmake/Modules/NewCMake/FindDirectShow.cmake:101 (MESSAGE):
  Uncomment code below: FindPackageHandleStandardArgs is now available.
Call Stack (most recent call first):
  core/vidl/CMakeLists.txt:13 (INCLUDE)

1 个答案:

答案 0 :(得分:1)

正如Andrey的评论所提到的,VXL使用CMake的方式阻止了交叉编译。然而,还有另一种选择。其中一个维护者维护包含核心库的替代构建系统的分支。 vxl-build-makefiles分支应该是一个很好的起点,可以修改为使用交叉编译器。

http://sourceforge.net/p/vxl/svn/36716/tree/branches/vxl-build-makefiles/

如果您对使用分支有任何疑问,或者确实有关于VXL的任何其他问题 - 可能更多使用vxl邮件列表。 vxl-users@lists.sourceforge.net