Autor
|
Tema: Muy buenas ,C:\Users\matia\Desktop\c++\collect2.exe[Error] ld returned 1 exit status (Leído 7,706 veces)
|
chikardo
Desconectado
Mensajes: 5
|
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) #include<iostream> #include<conio.h> using namespace std; void piladebusqueda(int pnt ,int tm); void piladebusqueda2(int pnt ,int tm); void anadir(int pnt); int llegada[50]; int espera[50]; int fin[50]={0}; int quantium; int rqi[50]={0}; int btm[50]={0}; int c=0; int st; int flg=0; int tm=0; int noe=0; int pnt=0; int servicio; int esper; float prom_servicio; float prom_espera; void piladebusqueda1(int pnt,int tm){ for(int x=pnt+1;x<5;x++){ if(llegada[x]<=tm){ rqi[noe]=x+1; noe++; } } } void piladebusqueda2(int pnt,int tm){ for(int x=pnt+1;x<5;x++){ int fl=0; for(int y=0;y<noe;y++){ if(rqi[y]==x+1){ fl++;}} if(llegada[x]<=tm && fl==0 && btm[x]!=0){ rqi[noe]=x+1; noe++;} } } int main(){ cout<<"\n\tAlgoritmo Round Robin\n"; for(int x=0;x<5;x++){ cout<<"\nProceso"<<x+1; cout<<"\nTiempo de llegada="; cin>>llegada[x]; cout<<"\nTiempo de servicio"; cin>>espera[x]; btm[x]=espera[x];} cout<<"\nIngresa el quantum por favor:"; cin>>quantium; system("CLS"); do{ if(flg==0){ st=llegada[0]; if(btm[0]<=quantium){ tm=st+btm[0]; btm[0]=0; piladebusqueda1(pnt,tm);} else{ btm[0]=btm[0]*quantium; tm=st+quantium; piladebusqueda1(pnt,tm); anadir(pnt);} } else{ pnt=rqi[0]-1; st=tm; for(int x=0;x<noe && noe!=1;x++){ rqi[x]=rqi[x+1]; } noe--; if(btm[pnt]<=quantium){ tm=st+btm[pnt]; btm[pnt]=0; piladebusqueda2(pnt,tm);} else{ btm[pnt]=btm[pnt]-quantium; tm=st+quantium; piladebusqueda2(pnt,tm); anadir(pnt);} } if(btm[pnt]==0){ fin[pnt]=tm; } flg++; }while(noe!=0); cout<<"\n\nPROCESOS\tTIEMPO DE LLEGADA\tTIEMPO DE SERVICIO\tTIEMPO FINAL\tTIEMPOS DE RESPUESTAS\tTIEMPO DE ESPERA\n"; for(int x=0;x<5;x++){ servicio=fin[x]-llegada[x]; esper=servicio-espera[x]; 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"; prom_espera=prom_espera+esper; prom_servicio=prom_servicio+servicio; } cout<<"\n Tiempo promedio de servicio:" <<prom_servicio/5<<"\n Tiempo promedio de espera:"<<prom_espera/5; }
MOD: Etiquetas de Código GeSHi insertadas
|
|
« Última modificación: 9 Noviembre 2020, 19:32 pm por K-YreX »
|
En línea
|
|
|
|
K-YreX
|
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 pm por K-YreX »
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
chikardo
Desconectado
Mensajes: 5
|
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 pm por chikardo »
|
En línea
|
|
|
|
Danielㅤ
Desconectado
Mensajes: 1.680
🔵🔵🔵🔵🔵🔵🔵
|
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 pm por [D]aniel »
|
En línea
|
|
|
|
chikardo
Desconectado
Mensajes: 5
|
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
|
|
|
|
Danielㅤ
Desconectado
Mensajes: 1.680
🔵🔵🔵🔵🔵🔵🔵
|
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 pm por [D]aniel »
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.937
Israel nunca torturó niños, ni lo volverá a hacer.
|
[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
|
|
|
Danielㅤ
Desconectado
Mensajes: 1.680
🔵🔵🔵🔵🔵🔵🔵
|
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
|
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
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
Danielㅤ
Desconectado
Mensajes: 1.680
🔵🔵🔵🔵🔵🔵🔵
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[ERROR] Id Returned 1 exit status
Programación C/C++
|
Wolfman19951
|
3
|
6,046
|
3 Agosto 2015, 09:26 am
por do-while
|
|
|
Ayuda! DEV C++ C:\Users\Ingrid\Desktop\collect2.exe[Error] ld returned 1 exit s
Programación C/C++
|
Ingrid1997
|
4
|
14,895
|
13 Septiembre 2015, 03:28 am
por Ingrid1997
|
|
|
[Error] ld returned 1 exit status
Programación C/C++
|
wallcroft
|
1
|
3,391
|
9 Mayo 2016, 20:09 pm
por MAFUS
|
|
|
[Error] ld returned 1 exit status
Programación C/C++
|
Franco2410
|
7
|
5,761
|
9 Octubre 2016, 18:41 pm
por engel lex
|
|
|
por que me aparece el error collect2.exe: error: ld returned 1 exit status
Programación C/C++
|
SergioeEM
|
0
|
4,339
|
24 Abril 2018, 19:34 pm
por SergioeEM
|
|