Som zostavujúci multiplatformnú aplikáciu C / C ++ CLI pre OSX pomocou cmake
a clang
(700.1.81) v OSX 10.11 na ~ 1 r. RMBP. Používam CPack na zabalenie svojej aplikácie ako drag-n-drop .dmg
Inštalačný program.
Keď testujem binárny súbor na starších počítačoch (~ 4 .y.o), pravidelne dostávam a SIGILL
chyba nezákonnej inštrukcie (dokonca aj v tej istej verzii OSX). Aké sú vyvolania magického kompilátora, ktoré by som mal používať na zostavenie „všeobecného“ procesora? llc
napríklad podporuje a -mpcu=generic
flag, ale clang nerozpozná tento príznak a clang man
stránka navrhuje -march=cpu
, ale ak sa pokúsim -march=generic
Mám to error: unknown target CPU "generic"
chyba.
Už špecifikujem staršie verzie OSX prostredníctvom -mmacosx-version-min
, zdá sa, že to nie je problém.
Musím špecifikovať generický CPU prostredníctvom cieľovej trojice? Aké sú možnosti?
odpovede:
0 pre odpoveď č. 1Pre všeobecnú architektúru vyskúšajte -march=x86-64
. To by malo zabrániť napríklad generovaniu špecifických pokynov spoločnosti Haswell.