1

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

当我为cmake正确设置我的NDK,并指定独立工具链作为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)
4

1 回答 1

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

于 2013-03-12T20:23:49.717 回答