我想将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

当我为cmake正确设置NDK并指定Standalone Toolchain作为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)

最佳答案

正如Andrey的评论所提到的那样,VXL使用CMake的方式可以防止交叉编译。但是,还有另一种选择。一位维护者维护着分支,其中包含核心库的替代构建系统。 vxl-build-makefiles分支应该是进行修改以与交叉编译器一起工作的良好起点。

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

如果您对使用分支机构有任何疑问,或者对VXL确实有其他疑问,请使用vxl邮件列表。 [email protected]

07-28 04:32