Razile

Compilare C++ su mac...

14 risposte in questa discussione

Salve, ho da poco (ieri) cominciato a programmare (se così può essere definito) i c++...a scuola ho scritto in codice con emacs e ho compilato e avviato da terminale da linux, non avendo voglia di installare linux ho installato xcode sul mac e provato ad avviare il file da terminale

-bash: ./masanga.out: Permission denied

Ho pensato che il formato .out nn fosse supportato da mac os, quindi ho deciso di ricompilare da terminale con gcc....

Undefined symbols:
  "std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
      _main in ccBJYTLk.o
      _main in ccBJYTLk.o
      _main in ccBJYTLk.o
  "std::ios_base::Init::Init()", referenced from:
      __static_initialization_and_destruction_0(int, int)in ccBJYTLk.o
  "std::basic_istream<char, std::char_traits<char> >::operator>>(int&)", referenced from:
      _main in ccBJYTLk.o
      _main in ccBJYTLk.o
      _main in ccBJYTLk.o
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const", referenced from:
      std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccBJYTLk.o
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const", referenced from:
      std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccBJYTLk.o
      std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccBJYTLk.o
      std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccBJYTLk.o
  "___gxx_personality_v0", referenced from:
      std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccBJYTLk.o
      ___tcf_0 in ccBJYTLk.o
      _main in ccBJYTLk.o
      unsigned long const& std::min<unsigned long>(unsigned long const&, unsigned long const&)in ccBJYTLk.o
      __static_initialization_and_destruction_0(int, int)in ccBJYTLk.o
      global constructors keyed to mainin ccBJYTLk.o
      CIE in ccBJYTLk.o
  "std::ios_base::Init::~Init()", referenced from:
      ___tcf_0 in ccBJYTLk.o
  "std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)", referenced from:
      _main in ccBJYTLk.o
  "std::cin", referenced from:
      _main in ccBJYTLk.o
  "std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))", referenced from:
      _main in ccBJYTLk.o
  "std::basic_ostream<char, std::char_traits<char> >::operator<<(int)", referenced from:
      _main in ccBJYTLk.o
      _main in ccBJYTLk.o
      _main in ccBJYTLk.o
  "std::cout", referenced from:
      _main in ccBJYTLk.o
      _main in ccBJYTLk.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

wtf? non ci sono errori nel programma...all'uni me lo compila subito...il programma è questo

#include<iostream>
using namespace std;

main()
{
  int x,y,z;
  int primo, secondo, terzo;
  cout<<"dammi 3 interi";
  cin >> x >> y >> z;
  if(x <=x and y <=z)
    {
     primo=x;
     secondo=y;
     terzo=z;
    }
    if(x <=z and z <=y)
    {
      primo=x;
      secondo=z;
      terzo=y;
    }
    if(y <=x and x <=z)
    {
      primo=y;
      secondo=x;
      terzo=z;
    }
    if(y <=z and z <=x)
    {
      primo=y;
      secondo=z;
      terzo=x;
    }
    if(z <=x and x <=y)
    {
      primo=z;
      secondo=x;
      terzo=y;
    }
    if(z <=y and y <=x)
    {
      primo=z;
      secondo=y;
      terzo=x;
    }
   
  cout<< primo << " " <<secondo << " " << terzo << endl;
}

Condividi questo messaggio


Link di questo messaggio

hai installato tutti i developer tools?

un binario compilato per linux non funziona (per ovvi motivi) su mac, devi ricompilarlo comunque!

inoltre "permission denied" è un errore di chmod, il file non ha i permessi per l'esecuzione, dovresti fare a prescindere "chmod +x masanga.out"

Condividi questo messaggio


Link di questo messaggio

Non c'entra di sicuro con i tuoi errori, ma vedo un x<=x nel primo if. Ribadisco la risposta di Gkx per il chmod. E .out non indica un formato specifico (come .exe), è solo una convenzione del compilatore.

Che comando hai usato per lanciare il compilatore? Quello giusto dovrebbe essere g++ nomefile, non gcc nomefile.

Condividi questo messaggio


Link di questo messaggio

Non c'entra di sicuro con i tuoi errori, ma vedo un x<=x nel primo if. Ribadisco la risposta di Gkx per il chmod. E .out non indica un formato specifico (come .exe), è solo una convenzione del compilatore.

Che comando hai usato per lanciare il compilatore? Quello giusto dovrebbe essere g++ nomefile, non gcc nomefile.

Ti ano, adesso mi compila :0

Ma quindi se il mio prof deve eseguire i programm isotto linux mi tocca compilare sotto linux? e cmq dopo aver fatto "chmod +x masanga.out" e provo ad avviare l'applicazione viene-bash: ./masanga.out: cannot execute binary file, questo perche è stato compilato su linux, vero?

Condividi questo messaggio


Link di questo messaggio

sì a tutte e due le domande

Condividi questo messaggio


Link di questo messaggio

Che palle....su mac esiste un client ssh con gui? Tranne RBrowser che nn riesco a scaricarlo?

Condividi questo messaggio


Link di questo messaggio

mah, se intendi solo per trasferimento file va bene anche quello integrato del mac ("connetti al server" da uno dei menu)

Condividi questo messaggio


Link di questo messaggio

ok sono dentro e sono riuscito anche a creare una cartella :0, ma come faccio a trasferire file? e se lancio il comando g++ aaa.aaa quando sono in ssh su linux, è linux che lo compila, vero?

Condividi questo messaggio


Link di questo messaggio

per trasferire file basta trascinarceli dentro dalle altre cartelle direttamente dal finder

per l'altra domanda la risposta è sì

Condividi questo messaggio


Link di questo messaggio

e per copiarli da ssh al proprio pc?

Condividi questo messaggio


Link di questo messaggio

...fai l'operazione inversa: li trascini dal server al tuo computer

Condividi questo messaggio


Link di questo messaggio

spe spe...io sto facendo da terminale...se per esempio trascino un file mi viene solo

xxxx@dip191:~$ /Users/Marco/Desktop/sms-received6.caf

-bash: /Users/Marco/Desktop/sms-received6.caf: No such file or directory...

e se cerco di copiarlo mi crea un file di testo con scritto il nome del file :O

Condividi questo messaggio


Link di questo messaggio

beh le cartelli le copi dal finder, non da terminale!

Condividi questo messaggio


Link di questo messaggio

ah!ma ssh dal finder lol...io ero da terminale :0

EDIT:dal finder nn mi accede...se inserisco ssh.studenti.math.unipd.it mi aggiunge davanti automaticamente afp://...è giusto?

Condividi questo messaggio


Link di questo messaggio

Crea un account o accedi per partecipare alla discussione

 

Crea un account

Registra un nuovo account sul forum. È facile e veloce.


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora

  • Chi sta navigando   0 utenti

    Nessun utente registrato sta visualizzando questa pagina.