La compilazione con DMD su 64bit Linux o il collegamento con i file oggetto a 32 bit
Domanda
Qual è il modo migliore per compilare programmi con DMD su una macchina a 64 bit? Non ha bisogno di compilare in codice a 64 bit. So di GDC, ma voglio lavorare con D2 anche. C'è anche chroot, ma spero per un modo più semplice.
Il problema reale non è con la compilazione, ma il collegamento. DMD invita GCC per eseguire il collegamento con librerie di sistema. Potrei avere DMD avere GCC Link contro libreria a 32 bit? O come dovrei farlo manualmente?
Ho già le librerie ia32 installati ed è per questo posso correre DMD.
Soluzione
Chiedi GCC per eseguire collegamento a 32 bit passandolo '-m32'
bandiera.
Sembra che DMD
non invocare gcc
per eseguire il collegamento, ma piuttosto ld
invoca direttamente. L'interruttore equivalente '-melf_i386'
è '-L-melf_i386'
, ea quanto pare il modo di fare <=> passare che opzione per il linker è con <=> bandiera.
Si noti che molti sistemi separati librerie di runtime e di sviluppo. pacchetti di runtime a 32 bit sono quasi sempre installati per impostazione predefinita, ma pacchetti di sviluppo a 32 bit non possono essere.
È necessario pacchetti di sviluppo a 32 bit per costruire programmi a 32 bit. Il fatto che a 32 bit può essere eseguito <=> per sé non dimostrare di avere tutte le librerie a 32 bit è necessario al fine di costruire programmi a 32 bit.