Error pri spustani vzorovych prikladov
Dobrý den, dnes som sa snazil spravit nejake ulohy z bloku 2 takze som studoval na internete veci ohladom toho assemblera narazil som na error s ktorým som si nevedel dat rady (screenshot v prilohe) ked som zadal cisla na tvrdo tak som nemal ziaden problem ale ked som chcel pouzit premenne tak mi to hadzalo tento error
relocation R_X86_64_32S against undefined symbol `_iCislo' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
skusal som to skompilovat aj s tym -fPIC, nepomohlo a neviem kde je problem napadlo mi ci to nebude v syntaxe ale je to vzorovy priklad takze tam by chyba byt nemala, moj OS je Ubuntu a robim vo Virtual Studio Code
Ja to síce robím cez Code Blocks ale skús:
pred asm napisať(riadok vyššie): #ifdef __GNUC__
a pod att_syntax(tiež o riadok):#endif
nepomohlo to ale tento kod čo som našiel na nete mi ide a nevyhadyuje error aj ked tam premennu použivam len neviem ako presne funguje zapis s tými dvojbodkami a prečo to s týmto zapisom nevyhadzuje error
![Guide Guide](http://ap.urk.fei.stuba.sk/wp-content/uploads/wpforo/avatars/apadminap_1.png)
Pouzite priklad zo stranky a v nasledovnej sekcii odstrante znak '_':
"mov eax,_iCislo \n" // iCislo -> EAX "inc eax \n" // EAX ++ "mov _iVysledok,eax \n" // EAX -> iVysledok
Cize takto:
"mov eax,iCislo \n" // iCislo -> EAX "inc eax \n" // EAX ++ "mov iVysledok,eax \n" // EAX -> iVysledok
Teraz som to testoval na Ubuntu 16.04 a vyriesilo to situaciu. Dajte prosim vediet, ci vam to pomohlo.
Dobrý deň,
rád by som to tu po roku oživil s tým ,že mam ten istý problém, pričom som použil aj vaše riešenie chybovej hlášky. Používam Ubuntu 20.04.2
![Guide Guide](http://ap.urk.fei.stuba.sk/wp-content/uploads/wpforo/avatars/apadminap_1.png)
Cize vam nejde ani povodny vzorovy priklad, ani fix z minuleho roka? Skusali ste kompilovat len pomocou gcc v prikazovom riadku?
Uz som prisiel na fix toho problému, problém bol v tom ze VSC mi nechcel spustit kod cez tlacidlo run code, v terminali ho musim najprv buildnut skratkou CTRL+shift+B na boku na obrazovke sa mi zobrazi verzia kodu ktoru musim spustit v terminali cez prikaz ./nazov_suboru
- 21 Forums
- 220 Topics
- 808 Posts
- 0 Online
- 7,045 Members