Cross Compiling: Difference between revisions

From Bitpost wiki
(Created page with "Issues: * need cross compile toolchain * need to cross compile any dependencies (static link what you can) ** libz example echo Getting source code for libraries... if...")
 
No edit summary
Line 2: Line 2:
* need cross compile toolchain
* need cross compile toolchain
* need to cross compile any dependencies (static link what you can)
* need to cross compile any dependencies (static link what you can)
** libz example
{| class="mw-collapsible mw-collapsed wikitable"
! OS installation
|-
|
{| class="mw-collapsible mw-collapsed wikitable"
! libz example
|-
|
     echo Getting source code for libraries...
     echo Getting source code for libraries...
     if [ ! -d zlib ]; then
     if [ ! -d zlib ]; then
Line 21: Line 28:
         cd ..
         cd ..
     fi
     fi
|}
** openssl example
** openssl example
     echo Getting source code for libraries...
     echo Getting source code for libraries...

Revision as of 22:24, 25 November 2016

Issues:

  • need cross compile toolchain
  • need to cross compile any dependencies (static link what you can)
OS installation
libz example
   echo Getting source code for libraries...
   if [ ! -d zlib ]; then
       wget http://zlib.net/zlib-${zlib_version}.tar.gz
       untar zlib-${zlib_version}.tar.gz
       ln -s zlib-${zlib_version} zlib
   fi
   echo Building libraries...
   if [ "$rebuild_libs" = true ]; then
   
       export cross=arm-linux-gnueabi-
   
       # ZLIB
       cd zlib
       ./configure --prefix=${install_root}
       make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib"
       make install
       cd ..
   fi
    • openssl example
   echo Getting source code for libraries...
   if [ ! -d openssl ]; then
       wget https://www.openssl.org/source/openssl-${openssl_version}.tar.gz
       untar openssl-${openssl_version}.tar.gz
       ln -s openssl-${openssl_version} openssl
   fi
   
   echo Building libraries...
   
   if [ "$rebuild_libs" = true ]; then
   
       export cross=arm-linux-gnueabi-
   
       # OPENSSL
       cd openssl
       ./Configure dist --prefix=${install_root} --openssldir=${install_root}
       make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib"
       make install
       cd ..
   fi
    • libwebsockets example
  • need to match the libraries on target machine for any dynamic linking requirements
  • need to match the build to the target kernel (or you might get "kernel too old")