elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status  (Leído 869 veces)
chikardo

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« en: 9 Noviembre 2020, 19:25 »

Hola buenas estuve todo el dia tratando de entender cual es mi error , y no lo encuentro , si me dijeran cual es el problema o me lo solucionaran ,seria un gran alivio para mi , desde ya muchas gracias.
Les dejo el codigo : (Es un codigo en c++ de rounb robin con quantium 5)

Código
  1. #include<iostream>
  2. #include<conio.h>
  3. using namespace std;
  4.  
  5. void piladebusqueda(int pnt ,int tm);
  6. void piladebusqueda2(int pnt ,int tm);
  7. void anadir(int pnt);
  8.  
  9. int llegada[50];
  10. int espera[50];
  11. int fin[50]={0};
  12. int quantium;
  13. int rqi[50]={0};
  14. int btm[50]={0};
  15. int c=0;
  16. int st;
  17. int flg=0;
  18. int tm=0;
  19. int noe=0;
  20. int pnt=0;
  21. int servicio;
  22. int esper;
  23. float prom_servicio;
  24. float prom_espera;
  25.  
  26.  
  27.  
  28. void piladebusqueda1(int pnt,int tm){
  29. for(int x=pnt+1;x<5;x++){
  30. if(llegada[x]<=tm){
  31. rqi[noe]=x+1;
  32. noe++; }
  33. }
  34. }
  35.  
  36.  
  37. void piladebusqueda2(int pnt,int tm){
  38. for(int x=pnt+1;x<5;x++){
  39. int fl=0;
  40. for(int y=0;y<noe;y++){
  41. if(rqi[y]==x+1){
  42. fl++;}}
  43. if(llegada[x]<=tm && fl==0 && btm[x]!=0){
  44. rqi[noe]=x+1;
  45.  noe++;}
  46. }
  47.  }
  48.  
  49.  
  50.  int main(){
  51.   cout<<"\n\tAlgoritmo Round Robin\n";
  52.  
  53.  
  54.  
  55.   for(int x=0;x<5;x++){
  56.   cout<<"\nProceso"<<x+1;
  57.   cout<<"\nTiempo de llegada=";
  58.   cin>>llegada[x];
  59.   cout<<"\nTiempo de servicio";
  60.   cin>>espera[x];
  61.      btm[x]=espera[x];}
  62.      cout<<"\nIngresa el quantum por favor:";
  63.      cin>>quantium;
  64.      system("CLS");
  65.  
  66.      do{
  67.       if(flg==0){
  68.       st=llegada[0];
  69.       if(btm[0]<=quantium){
  70.       tm=st+btm[0];
  71.       btm[0]=0;
  72.       piladebusqueda1(pnt,tm);}
  73.       else{
  74.       btm[0]=btm[0]*quantium;
  75.       tm=st+quantium;
  76.       piladebusqueda1(pnt,tm);
  77.       anadir(pnt);}
  78.  }
  79.  else{
  80.   pnt=rqi[0]-1;
  81.   st=tm;
  82.  
  83.  
  84.   for(int x=0;x<noe && noe!=1;x++){
  85. rqi[x]=rqi[x+1]; }
  86. noe--;
  87.  
  88.  
  89.  
  90.  
  91. if(btm[pnt]<=quantium){
  92. tm=st+btm[pnt];
  93. btm[pnt]=0;
  94. piladebusqueda2(pnt,tm);}
  95. else{
  96. btm[pnt]=btm[pnt]-quantium;
  97. tm=st+quantium;
  98. piladebusqueda2(pnt,tm);
  99. anadir(pnt);}
  100.  }
  101.  if(btm[pnt]==0){
  102.   fin[pnt]=tm;
  103.  }
  104.  flg++;
  105.  }while(noe!=0);
  106.  cout<<"\n\nPROCESOS\tTIEMPO DE LLEGADA\tTIEMPO DE SERVICIO\tTIEMPO FINAL\tTIEMPOS DE RESPUESTAS\tTIEMPO DE ESPERA\n";
  107.  for(int x=0;x<5;x++){
  108.   servicio=fin[x]-llegada[x];
  109.   esper=servicio-espera[x];
  110.   cout<<"proceso"<<x+1<<"\t\t"<<llegada[x]<<"\t\t"<<espera[x]<<"\t\t"<<fin[x]<<"\t\t"<<servicio<<"\t\t\t"<<esper<<"\t\t";
  111.   prom_espera=prom_espera+esper;
  112.   prom_servicio=prom_servicio+servicio;
  113.  }
  114.      cout<<"\n Tiempo promedio de servicio:" <<prom_servicio/5<<"\n Tiempo promedio de espera:"<<prom_espera/5;
  115.  }


MOD: Etiquetas de Código GeSHi insertadas


« Última modificación: 9 Noviembre 2020, 19:32 por K-YreX » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 799



Ver Perfil
Re: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« Respuesta #1 en: 9 Noviembre 2020, 19:44 »

Antes que nada, para futuras publicaciones introduce tu código entre etiquetas de Código GeSHi seleccionando el lenguaje adecuado.
En este caso ya lo he modificado yo, pero como digo, para otra ocasión.

En un primer vistazo veo:
  • La función <piladebusqueda(int, int)> no está implementada, sólo está definida.
  • Y la función <anadir()> más de lo mismo.

Como consejos te diría que:
  • Las variables globales no son recomendables.
  • No utilices la biblioteca <conio.h> de no ser estrictamente necesario (tu caso no lo parece). No es estándar.

Y como consejo para las publicaciones en este o cualquier otro foro:
  • Asegúrate de que el código es fácil de entender. Tanto en cuanto a nombres de variables/funciones como a identación.
  • Especifica tu error. Copia el error que te aparezca o comenta la situación concreta en la que el programa falla. Acota el error lo máximo posible para que quien te ayude pueda ir directo a una zona.

Si pegas tu código diciendo que hay un error y que alguien te lo solucione, no creo que haya muchos dispuestos a hacerlo. En cambio si dices: "me sale el siguiente error al compilar: <copias el error>" o "para el caso ... funciona bien pero para el caso ..., no"; seguramente haya más personas dispuestas a ayudar.



EDIT: Después de responder ya he visto el mensaje de error (en el asunto del tema).
Puede ser que tengas el mismo programa ejecutándose y no lo hayas finalizado. Comprueba eso.


« Última modificación: 9 Noviembre 2020, 19:47 por K-YreX » En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
chikardo

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« Respuesta #2 en: 9 Noviembre 2020, 20:11 »

Muchas gracias K-YreX , perdon por no a ver puesto bien la descripcion del problema , soy nuevito en el foro , lo implementare para la proxima , muchas gracias.
Con respecto a la solucion que me planteas , se lo pase a un amigo y le sale el mismo error en su pc , por lo tanto descarto que sea porque tengo un programa similar compilándose
.
« Última modificación: 9 Noviembre 2020, 20:12 por chikardo » En línea

[D]aniel

Conectado Conectado

Mensajes: 136



Ver Perfil
Re: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« Respuesta #3 en: 9 Noviembre 2020, 21:00 »

Hola, el compañero no se refiere a compilandose, sino a ejecutándose.
Por ejemplo puede suceder que tú programa se cierre solo, o que lo cerres vos, pero el proceso puede quedar abierto y necesitas darle un kill, es decir matar el proceso.

En tu programa borra los primeros espacios en esta parte

  int main(){

y la última llave al final del código también déjala así:

}

es decir sin espacio antes de ella.


Saludos
« Última modificación: 9 Noviembre 2020, 21:03 por [D]aniel » En línea

chikardo

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« Respuesta #4 en: 9 Noviembre 2020, 21:57 »

Muchas gracias[D]aniel , probe eso y tampoco funciono , entendi lo que me comentaste , de que el proceso podia estar todavia activo por lo tanto , abri el monitor de recursos y busque si estaba algun proceso y no encontre ninguno :(. No sabrias que otro problema podria ser? Busque 40 veces el error en el codigo y no lo encuentro.
En línea

[D]aniel

Conectado Conectado

Mensajes: 136



Ver Perfil
Re: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« Respuesta #5 en: 9 Noviembre 2020, 22:11 »

Podrías por favor dejarnos el mensaje de error completo? Así podamos saber un poco más cuál puede ser el problema.

Esta parte me llama la atención:

cout<<"proceso"<<x+1<<"

proceso es un string y lo estás intentando unir con un tipo int por lo que eso dará error, no se en C++ pero al menos en Python hay que pasar de int a string, es decir hacer el cálculo el int, luego pasarlo a string y después unirlo, también podes usar la función eval() para hacer el cálculo y unir con cadenas string.


Saludos
« Última modificación: 9 Noviembre 2020, 22:18 por [D]aniel » En línea

Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.642


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« Respuesta #6 en: 9 Noviembre 2020, 22:22 »

[Error] ld returned 1 exit status

Te da un error al enlazar y seguramente es por lo que te dijo K-YreX, se compila correctamente pero no encuentra por ningun lado algun simbolo (la funcion anadir en este caso, tenes que valga la redundancia añadir su codigo).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
[D]aniel

Conectado Conectado

Mensajes: 136



Ver Perfil
Re: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« Respuesta #7 en: 9 Noviembre 2020, 22:38 »

Además de lo que te comentan los compañeros de la función anadir, también he descubierto otro error, al principio del código haces mención a otra función que no existe:

void piladebusqueda(int pnt ,int tm);
void piladebusqueda2(int pnt ,int tm);

la función que no existe es esta:

piladebusqueda

pero la que vos tenés en tu código que si existe es esta otra:

piladebusqueda1

es decir una tiene un 1 al final y la otra no, corrige eso y luego nos comentas.


Saludos
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 799



Ver Perfil
Re: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« Respuesta #8 en: 10 Noviembre 2020, 09:37 »

Esta parte me llama la atención:
cout<<"proceso"<<x+1<<"

proceso es un string y lo estás intentando unir con un tipo int por lo que eso dará error, no se en C++ pero al menos en Python hay que pasar de int a string, es decir hacer el cálculo el int, luego pasarlo a string y después unirlo, también podes usar la función eval() para hacer el cálculo y unir con cadenas string.

Saludos
En C/C++ no es necesario castear esos valores.
Ese código es válido.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
[D]aniel

Conectado Conectado

Mensajes: 136



Ver Perfil
Re: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status
« Respuesta #9 en: 10 Noviembre 2020, 13:33 »

Bien, muchas gracias por la aclaración K-YreX no estaba seguro si C/C++ podía concatenar valores string con int.


Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines