2017-10-17 8 views
0

J'essaie d'inclure mlpack dans ma compilation yocto. Sans activer les liaisons python ma recette cuit avec succès. Mais tout en construisant les liaisons Python que je reçois l'erreur suivante:aarch64-poky-linux-gcc: erreur:: Aucun fichier ou répertoire de ce type

aarch64-poky-linux-gcc -march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -DNDEBUG -g -O3 -Wall 
-Wstrict-prototypes -O2 -pipe -g -feliminate-unused-debug-types -fPIC 
-I/builds/build-h3/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/numpy/core/include 
-I/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/ 
-I/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/git/src 
-I/builds/build-h3/tmp/sysroots/h3ulcb/usr/include 
-I/builds/build-h3/tmp/sysroots/h3ulcb/usr/include 
-I/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/.. 
-I/builds/build-h3/tmp/sysroots/h3ulcb/usr/include/python2.7 -c /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/sparse_coding.cpp 
-o build/temp.linux-x86_64-2.7/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/sparse_coding.o 
-DBINDING_TYPE=BINDING_TYPE_PYX -std=c++11 -march=armv8-a 
-mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wall 
-Wextra -ftemplate-depth=1000 -O3 -fopenmp aarch64-poky-linux-gcc: error: : No such file or directory aarch64-poky-linux-gcc: error: : No such file or directory error: command 'aarch64-poky-linux-gcc' failed with exit status 1 src/mlpack/methods/sparse_coding/CMakeFiles/build_pyx_sparse_coding.dir/build.make:60: recipe for target 'src/mlpack/methods/sparse_coding/CMakeFiles/build_pyx_sparse_coding' failed make[2]: *** [src/mlpack/methods/sparse_coding/CMakeFiles/build_pyx_sparse_coding] Error 1 make[2]: Leaving directory '/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build' CMakeFiles/Makefile2:6651: recipe for target 'src/mlpack/methods/sparse_coding/CMakeFiles/build_pyx_sparse_coding.dir/all' failed make[1]: *** [src/mlpack/methods/sparse_coding/CMakeFiles/build_pyx_sparse_coding.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... /builds/build-h3/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/setuptools-36.2.7-py2.7.egg/setuptools/dist.py:350: UserWarning: The version specified ('3.0.x') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details. running build_ext cythoning /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/preprocess_split.pyx to /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/preprocess_split.cpp building 'mlpack.preprocess_split' extension aarch64-poky-linux-gcc 
-march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -DNDEBUG -g -O3 -Wall 
-Wstrict-prototypes -O2 -pipe -g -feliminate-unused-debug-types -fPIC 
-I/builds/build-h3/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/numpy/core/include 
-I/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/ 
-I/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/git/src 
-I/builds/build-h3/tmp/sysroots/h3ulcb/usr/include 
-I/builds/build-h3/tmp/sysroots/h3ulcb/usr/include 
-I/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/.. 
-I/builds/build-h3/tmp/sysroots/h3ulcb/usr/include/python2.7 -c /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/preprocess_split.cpp 
-o build/temp.linux-x86_64-2.7/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/preprocess_split.o 
-DBINDING_TYPE=BINDING_TYPE_PYX -std=c++11 -march=armv8-a 
-mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wall 
-Wextra -ftemplate-depth=1000 -O3 -fopenmp aarch64-poky-linux-gcc: error: : No such file or directory aarch64-poky-linux-gcc: error: : No such file or directory error: command 'aarch64-poky-linux-gcc' failed with exit status 1 src/mlpack/methods/preprocess/CMakeFiles/build_pyx_preprocess_split.dir/build.make:60: recipe for target 'src/mlpack/methods/preprocess/CMakeFiles/build_pyx_preprocess_split' failed make[2]: *** [src/mlpack/methods/preprocess/CMakeFiles/build_pyx_preprocess_split] Error 1 make[2]: Leaving directory '/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build' CMakeFiles/Makefile2:1387: recipe for target 'src/mlpack/methods/preprocess/CMakeFiles/build_pyx_preprocess_split.dir/all' failed make[1]: *** [src/mlpack/methods/preprocess/CMakeFiles/build_pyx_preprocess_split.dir/all] Error 2 [ 89%] Linking CXX executable ../../../../bin/generate_pyx_softmax_regression cd /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/methods/softmax_regression && /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/cmake -E cmake_link_script CMakeFiles/generate_pyx_softmax_regression.dir/link.txt --verbose=1 /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++ 
-march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wall 
-Wextra -ftemplate-depth=1000 -O3 -fopenmp -O2 -pipe -g 
-feliminate-unused-debug-types -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -DNDEBUG 
-march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wl,-O1 
-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu 
-Wl,--as-needed CMakeFiles/generate_pyx_softmax_regression.dir/__/__/bindings/python/generate_pyx_softmax_regression.cpp.o CMakeFiles/generate_pyx_softmax_regression.dir/__/__/bindings/python/print_pyx.cpp.o 
-o ../../../../bin/generate_pyx_softmax_regression -rdynamic ../../../../lib/libmlpack.so.2.0 -lrt -larmadillo 
-lboost_program_options-mt -lboost_unit_test_framework 
-lboost_serialization-mt cd /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/methods/softmax_regression && /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/cmake 
-DGENERATE_PYX_PROGRAM=/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_softmax_regression 
-DPYX_OUTPUT_FILE=/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/softmax_regression.pyx 
-P /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/git/CMake/GeneratePYX.cmake /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_softmax_regression: /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_softmax_regression: cannot execute binary file make[2]: Leaving directory '/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build' [ 89%] Built target generate_pyx_softmax_regression [ 89%] Linking CXX executable ../../../../bin/generate_pyx_knn cd /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/methods/neighbor_search && /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/cmake -E cmake_link_script CMakeFiles/generate_pyx_knn.dir/link.txt --verbose=1 /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++ 
-march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wall 
-Wextra -ftemplate-depth=1000 -O3 -fopenmp -O2 -pipe -g 
-feliminate-unused-debug-types -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -DNDEBUG 
-march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wl,-O1 
-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu 
-Wl,--as-needed CMakeFiles/generate_pyx_knn.dir/__/__/bindings/python/generate_pyx_knn.cpp.o CMakeFiles/generate_pyx_knn.dir/__/__/bindings/python/print_pyx.cpp.o 
-o ../../../../bin/generate_pyx_knn -rdynamic ../../../../lib/libmlpack.so.2.0 -lrt -larmadillo 
-lboost_program_options-mt -lboost_unit_test_framework 
-lboost_serialization-mt cd /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/methods/neighbor_search && /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/cmake 
-DGENERATE_PYX_PROGRAM=/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_knn 
-DPYX_OUTPUT_FILE=/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/knn.pyx 
-P /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/git/CMake/GeneratePYX.cmake /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_knn: /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_knn: cannot execute binary file make[2]: Leaving directory '/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build' [ 89%] Built target generate_pyx_knn [ 89%] Linking CXX executable ../../../../bin/generate_pyx_kfn cd /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/methods/neighbor_search && /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/cmake -E cmake_link_script CMakeFiles/generate_pyx_kfn.dir/link.txt --verbose=1 /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++ 
-march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wall 
-Wextra -ftemplate-depth=1000 -O3 -fopenmp -O2 -pipe -g 
-feliminate-unused-debug-types -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -DNDEBUG 
-march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wl,-O1 
-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu 
-Wl,--as-needed CMakeFiles/generate_pyx_kfn.dir/__/__/bindings/python/generate_pyx_kfn.cpp.o CMakeFiles/generate_pyx_kfn.dir/__/__/bindings/python/print_pyx.cpp.o 
-o ../../../../bin/generate_pyx_kfn -rdynamic ../../../../lib/libmlpack.so.2.0 -lrt -larmadillo 
-lboost_program_options-mt -lboost_unit_test_framework 
-lboost_serialization-mt cd /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/methods/neighbor_search && /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/cmake 
-DGENERATE_PYX_PROGRAM=/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_kfn 
-DPYX_OUTPUT_FILE=/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/kfn.pyx 
-P /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/git/CMake/GeneratePYX.cmake /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_kfn: /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_kfn: cannot execute binary file make[2]: Leaving directory '/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build' [ 89%] Built target generate_pyx_kfn [ 89%] Linking CXX executable ../../../../bin/generate_pyx_krann cd /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/methods/rann && /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/cmake -E cmake_link_script CMakeFiles/generate_pyx_krann.dir/link.txt 
--verbose=1 /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++ 
-march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wall 
-Wextra -ftemplate-depth=1000 -O3 -fopenmp -O2 -pipe -g 
-feliminate-unused-debug-types -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -DNDEBUG 
-march=armv8-a -mtune=cortex-a57.cortex-a53 
--sysroot=/builds/build-h3/tmp/sysroots/h3ulcb -O2 -pipe -g 
-feliminate-unused-debug-types -fvisibility-inlines-hidden -Wl,-O1 
-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu 
-Wl,--as-needed CMakeFiles/generate_pyx_krann.dir/__/__/bindings/python/generate_pyx_krann.cpp.o CMakeFiles/generate_pyx_krann.dir/__/__/bindings/python/print_pyx.cpp.o 
-o ../../../../bin/generate_pyx_krann -rdynamic ../../../../lib/libmlpack.so.2.0 -lrt -larmadillo 
-lboost_program_options-mt -lboost_unit_test_framework 
-lboost_serialization-mt cd /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/methods/rann && /builds/build-h3/tmp/sysroots/x86_64-linux/usr/bin/cmake 
-DGENERATE_PYX_PROGRAM=/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_krann 
-DPYX_OUTPUT_FILE=/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/src/mlpack/bindings/python/mlpack/krann.pyx 
-P /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/git/CMake/GeneratePYX.cmake /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_krann: /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build/bin/generate_pyx_krann: cannot execute binary file make[2]: Leaving directory '/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build' [ 89%] Built target generate_pyx_krann make[1]: Leaving directory '/builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/build' Makefile:141: recipe for target 'all' failed make: *** [all] Error 2 ERROR: oe_runmake failed ERROR: Function failed: do_compile (log file is located at /builds/build-h3/tmp/work/aarch64-poky-linux/mlpack/git-r0/temp/log.do_compile.17361) 

Ma recette ressemble à ceci:

DEPENDS = "boost armadillo python-native python-setuptools-native 
python-pandas-native python-numpy-native python-cython-native 
python-pytest-runner-native doxygen-native" 

LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3cee6555b8c975c14d29687fe7e78038" 

SRC_URI = "git://github.com/mlpack/mlpack.git;protocol=https \ 
" 
SRCREV = "b8ee319818e6213da4b92cb69dab94b956795401" 

S = "${WORKDIR}/git" 

inherit cmake pythonnative 

EXTRA_OECMAKE = "-DDEBUG:BOOL=OFF \ 
-DPROFILE:BOOL=OFF \ 
-DBUILD_TESTS:BOOL=OFF \ 
-DCMAKE_BUILD_TYPE:STRING=Release \ 
-DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \ 
-DCMAKE_SKIP_RPATH:BOOL=YES \ 
-DPY_PANDAS:PATH=${STAGING_LIBDIR_NATIVE}/python2.7/site-packages/pandas \ 
" 

do_compile_prepend() { 
export STAGING_LIBDIR="${STAGING_LIBDIR}" 
export STAGING_INCDIR="${STAGING_INCDIR}" 
} 

Y at-il quelque chose d'autre qui doit être inclus dans ma recette? Ou l'environnement de construction manque-t-il quelque chose?

Les pointeurs seraient vraiment utiles.

Répondre

0

mlpack construit les liaisons Python en plusieurs étapes:

  • construire un programme generate_pyx_<name> pour générer le fichier du Cython qui sera compilé
  • exécuter le programme generate_pyx_<name> et enregistrer la sortie .pyx fichier
  • utilisation Cython et setuptools pour générer un fichier .cpp à partir du fichier .pyx puis compiler

il est un peu un rond-point proc ess, mais je crois que ce qui se passe ici est que les programmes generate_pyx_<name> sont compilés pour le périphérique au lieu de l'hôte, et ne peuvent donc pas être exécutés pour générer les fichiers .pyx. Il n'y aura malheureusement pas de solution facile, car CMake compilera la cible generate_pyx_<name> avec les mêmes options que vous compilez le reste de la bibliothèque (ce qui dans votre cas cible le périphérique).

Pour faire ce travail, vous aurez besoin de modifier src/mlpack/bindings/python/CMakeLists.txt, en particulier la ligne

add_executable(generate_pyx_${name} 
    ${CMAKE_BINARY_DIR}/src/mlpack/bindings/python/generate_pyx_${name}.cpp 
    ${CMAKE_SOURCE_DIR}/src/mlpack/bindings/python/print_pyx.hpp 
    ${CMAKE_SOURCE_DIR}/src/mlpack/bindings/python/print_pyx.cpp) 

et lignes connexes. En substance, vous devrez vous assurer que les CXXFLAGS comme -march=armv8-a -mtune=cortex-a57.cortex-a53 ne sont pas utilisés pour cette cible particulière.