2017-09-21 6 views
0

Je veux une compilation croisée Alexa amazon SDK dans la plate-forme de openwrt, mais il ne peut pas trouver curl/curl.h quand excute make, voici mon fonctionnement étape:compilation croisée cmake ne peut pas trouver le fichier d'en-tête

  1. créer un cMake fichier toolchain comme ceci:

    SET(CMAKE_SYSTEM_NAME Linux) 
    SET(CMAKE_SYSTEM_VERSION 1) 
    SET(CMAKE_C_COMPILER arm-openwrt-linux-muslgnueabi-gcc) 
    SET(CMAKE_CXX_COMPILER arm-openwrt-linux-muslgnueabi-g++) 
    
    SET(CMAKE_FIND_ROOT_PATH /home/sundq/workspace/Develop/out/astar-parrot/staging_dir/target/rootfs) 
    
    SET(CMAKE_SYSROOT /home/sundq/workspace/Develop/out/astar-parrot/staging_dir/target/rootfs) 
    
    SET(CMAKE_LIBRARY_PATH /home/sundq/workspace/Develop/out/astar-parrot/staging_dir/target/rootfs/usr/lib) 
    
    SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 
    SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 
    SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 
    
    SET(CMAKE_C_FLAGS "-I/home/sundq/workspace/Develop/out/astar-parrot/staging_dir/target/rootfs/usr/include") 
    
    SET(CMAKE_CXX_FLAGS "-I/home/sundq/workspace/Develop/out/astar-parrot/staging_dir/target/rootfs/usr/include") 
    
  2. excute cmake comme ceci:

    cmake ../avs-device-sdk-master-v1.0.2/ -DCMAKE_BUILD_TYPE=MINSIZEREL -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake 
    
  3. excute make, la sortie est:

    /AVSCommon/AVS/src/AlexaClientSDKInit.cpp:18:23: fatal error: curl/curl.h: No such file or directory 
    

Je suis sûr que la boucle/fichier dans le répertoire curl.h. existe /home/sundq/workspace/Develop/out/astar-parrot/staging_dir/target/rootfs/usr/include.

+2

Copie possible de [Compilation croisée CMake: les drapeaux C du fichier de chaîne d'outils sont ignorés] (https://stackoverflow.com/questions/11423313/cmake-cross-compiling-c-flags-from-toolchain-file-ignored) – Tsyvarev

+0

En bref: vous devez définir les variables ** en cache ** * CMAKE_C_FLAGS * et * CMAKE_CXX_FLAGS *. – Tsyvarev

Répondre

0

La méthode correcte consiste à créer un package OpenWrt pour Alexa et à ajouter libcurl en tant que dépendance.

Vérifiez here pour créer un package.