1

VXL(Vision-something-Libraries)をAndroidプラットフォームに移植したい.使用したクロスコンパイラはandroid-cmakeです。VXL は URL http://vxl.sourceforge.net/から取得できます。 使用したバージョンは vxl-1.14.0 です。Android-camke は URL http://code.google.com/pから取得できます。 /アンドロイド-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を使用する方法は、クロスコンパイルを防ぎます。ただし、別の方法があります。メンテナの1人は、コアライブラリの代替ビルドシステムを含むブランチを維持しています。ブランチは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 に答える