Çözüldü C "gcc.exe etkin dosyayı derle' terminated with exit code -1." hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

342746

Kilopat
Katılım
2 Haziran 2020
Mesajlar
5.441
Makaleler
10
Çözümler
84
Bir C kodunda bu hatayı alıyorum. Baktığım kadarı ile kod kaynaklı bir hata yok. Bu hatayı ya Türkçe karakter kullanınca ya da kod içinde yanlış yazımdan kaynaklanıyor. İki kere karşılaşmıştım ama çözmüştüm. Biri dosyada Türkçe karakter olması diğeri ise "main" yerine "maiin" yazmamdı. Ama bunu çözemedim. Dosya adını değiştirdim ama işe yaramadı. Siz de bir bakar mısınız?

Hata;
Ekran görüntüsü 2021-05-08 000814.png


[CODE lang="c" title="Kod"]#include <stdlib.h>
#include <stdio.h>

struct calisanlar
{

char ad[30];
char soyad[30];
int yas;
struct calisanBilgi bilgi;
};

struct calisanBilgi
{

char calistigiBirim[30];
char makam[30];
float maas;
int calistigiSene;
};

void elemanBilgiGoster(struct calisanlar x)
{
printf("%s %s %d %s %s %2.f %d\n", x.ad, x.soyad, x.yas, x.bilgi.makam, x.bilgi.calistigiBirim, x.bilgi.maas, x.bilgi.calistigiSene);
}

int main()
{

struct calisanlar calisanlarTamami[3];
int eklenecekEleman;

printf("Lutfen eklenecek eleman sayisini giriniz.\n");
scanf("%d", eklenecekEleman);

for (int i = 0; i < eklenecekEleman; i++)
{
printf("%d. elemani giriniz.\n", i + 1);
scanf("%s %s %d %s %s %2.f %d\n", calisanlarTamami.ad, calisanlarTamami.soyad, calisanlarTamami.yas, calisanlarTamami.bilgi.makam, calisanlarTamami.bilgi.maas, calisanlarTamami.bilgi.calistigiSene);
}

printf("Kaydedilen eleman bilgileri;\n");
for (int i = 0; i < eklenecekEleman; i++)
{
elemanBilgiGoster(calisanlarTamami);
}
system("pause");
return 0;
}[/CODE]
 
Çözüm
Ben geldim. :)
C:
#include <stdlib.h>
#include <stdio.h>

// struct asd{...}; yerine
// typedef struct{...}asd; yazmaya alışmalısın. Özellikle header dosyalarında struct tanımlayınca işine yarayacak.
typedef struct
{
    char makam[30];
    float maas;
    int calistigiSene;
} calisanBilgi;


typedef struct
{

    char ad[30];
    char soyad[30];
    int yas;
    calisanBilgi bilgi;
}calisanlar;


void elemanBilgiGoster(calisanlar* x) //Burada pointer kullanma sebebim ise, fonksiyona verilen struct'ın bir kopyasını daha oluşturup bellek alanı kaplamamak. Bunun yerine referans da alabilirsin.
{
    //UYARI: Fonksiyon parametresindeki pointer'a verdiğin veriyi silmeyi deneme. Tabii eğer malloc() ile oluşturduğun pointer'a ait nesneyi veriyorsan ve o nesneyi bir daha kullamayacaksan silebilirsin. Aksi halde kodun hata verir.
    printf("%s %s %d %s %f %d\n", x->ad, x->soyad, x->yas, x->bilgi.makam, x->bilgi.maas, x->bilgi.calistigiSene);
}

int main()
{

    calisanlar *calisanlarTamami = NULL; //Burada pointer kullanma sebebim dinamik olarak esneyebilen dizi tanımlamak. Kullanıcının gireceği kadar belleği ayırır.
    int eklenecekEleman;

    printf("Lutfen eklenecek eleman sayisini giriniz.\n");
    scanf("%d", &eklenecekEleman); //scanf() fonksiyonunda referans kullan, böylece değişkenin olduğu adresteki veriye erişilebilecek ve değişkenin verisi fonksiyondan değiştirilebilecektir.
    calisanlarTamami = malloc(eklenecekEleman*sizeof(calisanlar)); //Bellek allokasyonu (memory allocation -> malloc() [veya calloc(), senin tarzına bağlı.]). Fonksiyonu nasıl kullandığıma dikkat et.

    for (int i = 0; i < eklenecekEleman; i++)
    {
        printf("%d. elemani giriniz.\n", i + 1);
        scanf("%s %s %d %s %f %d", &calisanlarTamami[i].ad, &calisanlarTamami[i].soyad, &calisanlarTamami[i].yas, &calisanlarTamami[i].bilgi.makam, &calisanlarTamami[i].bilgi.maas, &calisanlarTamami[i].bilgi.calistigiSene);
        //scanf'ten \n ibaresini kaldırdım. Çünkü öyle olunca \n'den bir önceki formatta bir karakter daha ister.
    }

    printf("Kaydedilen eleman bilgileri;\n");
    for (int i = 0; i < eklenecekEleman; i++)
    {
        elemanBilgiGoster(&calisanlarTamami[i]);
    }
    free(calisanlarTamami); //Bellek alanını temizledim. Bunu unutma, yoksa kodunda açık bırakırsın.
    return 0;
}
Kodu diğer klasörlerde de çalıştırmayı deneyin. Olmazsa rehberimdeki gibi yeni klasörde baştan deneyin.
Yeni bir proje üzerinde denedim, hata bu.
hataYeni.png


Code runner çözebilir. Debug değil*
O işi daha da batırıyor.
JSON dosyasını atar mısın?

VS Code hangi temayı kullanıyorsunuz?
Yeni Projede;
[CODE title="launch.json"]{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe - Etkin dosyayı derle ve dosyada hata ayıkla",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "gdb için düzgün yazdırmayı etkinleştir",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc.exe etkin dosyayı derle"
}
]
}[/CODE]
[CODE title="tasks.json"]{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe etkin dosyayı derle",
"command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Hata Ayıklayıcısı tarafından oluşturulan görev."
}
],
"version": "2.0.0"
}[/CODE]

İlk hata aldığımda ise;
[CODE title="launch.json"]{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [

{
"name": "gcc.exe - Etkin dosyayı derle ve dosyada hata ayıkla",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "gdb için düzgün yazdırmayı etkinleştir",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc.exe etkin dosyayı derle"
}
]
}[/CODE]
[CODE title="tasks.json"]{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe etkin dosyayı derle",
"command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Hata Ayıklayıcısı tarafından oluşturulan görev."
}
],
"version": "2.0.0"
}[/CODE]

İlk, yani her zaman kullandığım projede bunlar gibi birkaç daha dosya var.
başka.png


One Dark Pro Tema ve VSCode Icons icon paketini kullanıyorum. Cidden güzelmiş ben de yeni fark ettim :D
 
Yeni bir proje üzerinde denedim, hata bu.
Eki Görüntüle 1013029


O işi daha da batırıyor.

Yeni Projede;
[CODE title="launch.json"]{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe - Etkin dosyayı derle ve dosyada hata ayıkla",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "gdb için düzgün yazdırmayı etkinleştir",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc.exe etkin dosyayı derle"
}
]
}[/CODE]
[CODE title="tasks.json"]{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe etkin dosyayı derle",
"command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Hata Ayıklayıcısı tarafından oluşturulan görev."
}
],
"version": "2.0.0"
}[/CODE]

İlk hata aldığımda ise;
[CODE title="launch.json"]{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [

{
"name": "gcc.exe - Etkin dosyayı derle ve dosyada hata ayıkla",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "gdb için düzgün yazdırmayı etkinleştir",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc.exe etkin dosyayı derle"
}
]
}[/CODE]
[CODE title="tasks.json"]{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe etkin dosyayı derle",
"command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Hata Ayıklayıcısı tarafından oluşturulan görev."
}
],
"version": "2.0.0"
}[/CODE]

İlk, yani her zaman kullandığım projede bunlar gibi birkaç daha dosya var.
Eki Görüntüle 1013036

One Dark Pro Tema ve VSCode Icons icon paketini kullanıyorum. Cidden güzelmiş ben de yeni fark ettim :D
Başlıktaki hata çözülmüş. Yeni aldığınız hata struct türü ile ilgili olsa gerek. Bilmiyorum. :D
 
Başlıktaki hata çözülmüş. Yeni aldığınız hata struct türü ile ilgili olsa gerek. Bilmiyorum. :D
Evet hatanın kaynağını buldum. Online bir Compiler üzerinden de denedim ve sorun 10. satırdaki struct calisanBilgi bilgi;'den kaynaklanıyor. Ama nasıl çözeceğimi ben de bilmiyorum 😅
 

Yeni konular

Geri
Yukarı