Error pri spustani ...
 
Notifications
Clear all

Error pri spustani vzorovych prikladov

7 Posts
4 Users
1 Likes
434 Views
(@lejko)
Posts: 2
New Member
Topic starter
 

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

 
Posted : 03/04/2020 6:47 am
(@michal)
Posts: 6
Active Member
 

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

 
Posted : 03/04/2020 1:17 pm
(@lejko)
Posts: 2
New Member
Topic starter
 

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 

#include <stdio.h>

int main(){
 
int temp=0;

asm(".intel_syntax;"
"mov %0, 1;"
".att_syntax;"
: "=r"(temp)
:
);
printf("temp=%d\n", temp);

return 0 ;
}
 
Posted : 04/04/2020 9:07 am
Guide
(@guide)
Posts: 214
Vedúci cvičení - Task boss Admin
 

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.

This post was modified 4 years ago 5 times by Guide
 
Posted : 07/04/2020 1:07 am
(@xvinansky)
Posts: 2
New Member
 

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

 
Posted : 14/03/2021 6:55 pm
Guide
(@guide)
Posts: 214
Vedúci cvičení - Task boss Admin
 

@xvinansky

Cize vam nejde ani povodny vzorovy priklad, ani fix z minuleho roka? Skusali ste kompilovat len pomocou gcc v prikazovom riadku?

 

 
Posted : 16/03/2021 1:55 pm
(@xvinansky)
Posts: 2
New Member
 

@guide

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

 

 
Posted : 17/03/2021 8:20 am
Guide reacted
Share:
Close Menu