User Tools

Site Tools


doc:appunti:linux:sa:multiarch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:appunti:linux:sa:multiarch [2016/12/14 10:34] – created niccolodoc:appunti:linux:sa:multiarch [2018/04/13 17:00] (current) – [Cross compilazione] niccolo
Line 21: Line 21:
  
 Da questo punto in poi l'eseguibile i386 dovrebbe partire, eventuali librerie mancanti si scoprano con **ldd** e **strace**. Da questo punto in poi l'eseguibile i386 dovrebbe partire, eventuali librerie mancanti si scoprano con **ldd** e **strace**.
 +
 +===== Cross compilazione =====
 +
 +Come fare per **compilare un software i386** su una macchina **amd64**? Su una Debian moderna (ad esempio una Debian 9 Stretch) dovrebbe essere sufficiente installare i pacchetti:
 +
 +<code>
 +apt-get install gcc-multilib g++-multilib
 +</code>
 +
 +Ovviamente sarà necessario installare gli header delle librerie per l'architettura target, ad esempio:
 +
 +<code>
 +apt-get install libssl-dev:i386
 +</code>
 +
 +Poi, a seconda dell'ambiente di configurazione/compilazione si dovrà settare alcune variabili di ambiente. Ad esempio:
 +
 +<code>
 +export CFLAGS='-m32'
 +export CXXFLAGS='-m32'
 +export LDFLAGS='-m32'
 +</code>
 +
 +Oppure per l'ambiente di configurazione CMake:
 +
 +<code>
 +cmake -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_SHARED_LINKER_FLAGS=-m32 /path/to/source/
 +</code>
doc/appunti/linux/sa/multiarch.1481708086.txt.gz · Last modified: 2016/12/14 10:34 by niccolo