Trong khi đang lập trình với ngôn ngữ C, C++, bạn gặp phải lỗi “ld returned 1 exit status”. Vì sao lỗi này xuất hiện? Và cách sửa lỗi “ld returned 1 exit status” ra sao? Bạn hãy yên tâm, TinoHost sẽ giúp bạn sửa lỗi “ld returned 1 exit status” trong 1 phút!
Vì sao lỗi xuất hiện?
4 nguyên nhân dẫn đến lỗi “ld returned 1 exit status“
Nguyên nhân dẫn đến lỗi “ld returned 1 exit status” là không ít để có thể giải quyết “thần tốc” vấn đề, bạn chỉ cần xác định rõ nguyên nhân là được. Sau đây là những lỗi dẫn đến “ld returned 1 exit status” phổ biến nhất:
- Lỗi do gõ sai chính tả câu lệnh, thư viện – đây là lỗi phổ biến bậc nhất!
- Một chương trình khác bạn đang biên dịch và chạy ngầm trong tác vụ
- Do phần mềm diệt virus chặn file exe của bạn
- Lỗi không xác định
Ví dụ mẫu dùng để sửa lỗi
Trong ví dụ mẫu mình lấy được tại trang Dạy nhau học có một lỗi khá cơ bản bạn có thể bắt gặp nếu dò xét kỹ. Tiếp theo, để sửa lỗi bạn hãy đọc qua ví dụ này và tìm lỗi nhé!
Phần mềm IDE trong ví dụ: Dev C++
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<math.h>
typedef struct //khai bao ngay sinh
{
int ngay;
int thang;
int nam;
}a;
typedef struct //khai bao diem tong ket
{
float toan;
float ly;
float hoa;
float tong;
}b;
typedef struct //khai bao danh sach thi
{
char ho_ten[25];
a ngay_sinh;
b diem;
}c;
c ds[30];
float toan, ly, hoa, tong;
int maint()
{
for(int i=1; i<30; i++)
{
//nhap ten sinh vien
printf("nhap du lieu sinh vien thu %d ", i);
printf("nhap ho ten %c/n", ds[i].ho_ten);
fflush(stdin);
gets(ds[i].ho_ten);
//nhap ngay thang nam sinh
printf("/n nhap ngay,thang,nam sinh %c", &ds[i].ngay_sinh.ngay, &ds[i].ngay_sinh.thang, &ds[i].ngay_sinh.nam);
fflush(stdin);
scanf("%d - %d - %d",&ds[i].ngay_sinh.ngay, &ds[i].ngay_sinh.thang, &ds[i].ngay_sinh.nam);
//nhap diem cac mon
printf("/n nhap diem mon toan : %f", ds[i].diem.toan);
fflush(stdin);
scanf("%f",&ds[i].diem.toan);
printf("/n nhap diem mon ly : %f", ds[i].diem.ly);
fflush(stdin);
scanf("%f",&ds[i].diem.ly);
printf("/n nhap diem mon hoa : ", ds[i].diem.hoa);
fflush(stdin);
scanf("%f",&ds[i].diem.hoa);
printf("/n tong diem %f", ds[i].diem.tong=(ds[i].diem.toan + ds[i].diem.ly + ds[i].diem.hoa) );
}
}
Và kết quả khi chạy ví dụ này trả về như sau:
D:\Dev C++\collect2.exe [Error] ld returned 1 exit status
Vậy, đâu là nguyên nhân và sửa lỗi “ld returned 1 exit status” này hiệu quả?
Sửa lỗi “ld returned 1 exit status” trong 1 phút
Sửa lỗi “ld returned 1 exit status” do lỗi do gõ sai chính tả câu lệnh, thư viện
Đây là một lỗi vô cùng cơ bản và rất nhiều bạn gặp phải trong quá trình viết code.
Ngay trong ví dụ, bạn có thể thấy rằng hàm main đã bị viết sai thành maint.
Trong lúc chính bản thân tôi gõ, đôi khi vẫn mắc một số lỗi và tạo ra những câu lệnh ngớ ngẩn: mani, mai, mainn,… Và bạn lưu ý một số tên thư viện, hàm bạn có thể gọi sai như: printf, scanf,…
Để chắc chắn, bạn chỉ cần kiểm tra lỗi chính tả trong các câu lệnh của bạn là được.
Sửa lỗi “ld returned 1 exit status” do chương trình khác chạy ngầm
Mô tả trường hợp do chương trình khác chạy ngầm
Trong khi bạn biên dịch một chương trình và bạn tiếp tục thực hiện Run, lỗi “ld returned 1 exit status” lại xuất hiện.
Nếu may mắn, bạn sẽ thấy một ứng dụng đang chạy ngay ở thanh tác vụ của Windows như trong ảnh:
Cách sửa lỗi do chương trình khác chạy ngầm
Đối với trường hợp như trong ví dụ, bạn chỉ cần mở tab đó lên và tắt chương trình đó đi là xong.
Trong trường hợp bạn không thấy phần mềm nào dưới thanh tác vụ, bạn có thể thực hiện như sau để mở Task manager và tắt chương trình đó đi:
- Cách 1: ctrl + alt + delete => Task manager => trong tab Process tìm đến ứng dụng đang chạy ngầm và tắt chương trình đó đi bằng cách chọn vào ứng dụng đó => End Task.
- Cách 2: ctrl + shift + Esc => vào thẳng Task manager trong tab Process bạn tìm ứng dụng và tắt ứng dụng bằng cách chọn vào ứng dụng => End Task chạy ngầm đi là được.
Sửa lỗi “ld returned 1 exit status” do phần mềm diệt virus chặn file exe
Mô tả trường hợp lỗi “ld returned 1 exit status” do phần mềm diệt virus chặn file exe
File exe là một file thực thi, hầu hết các Malware, Virus Trojan đều có file .exe độc hại.
Khi bạn vô tình nhấp vào hoặc vô tình tải trên mạng về, các phần mềm diệt virus sẽ ngăn không cho file .exe đó chạy và xóa hẳn file đi (Window defender sẽ trực tiếp xóa – các phần mềm khác như Malwarebytes sẽ chặn không cho file .exe chạy và hỏi bạn muốn làm gì với file).
Sửa lỗi do phần mềm diệt virus chặn file exe
Phương pháp sửa lỗi khá đơn giản, bạn chỉ cần cho phép file exe của chương trình bạn chạy trong danh sách Allow list của phần mềm diệt Virus là được.
Trong trường hợp bạn không tìm thấy, bạn có thể trực tiếp tắt phần mềm diệt virus đi và chạy file (TinoHost không khuyến khích bạn thực hiện cách này, tuy nhiên, trong tình cảnh bạn không thể tìm thấy bạn có thể tạm thời tắt đi, sau khi chạy chương trình xong bạn có thể mở lại).
TinoHost sẽ hướng dẫn bạn cách thực hiện trên Malwarebytes nhé:
Bạn cần truy cập vào phần mềm, sau đó bạn bấm vào biểu tượng bánh răng ở góc trên bên phải của giao diện. => Bạn nhấp vào tab Allow list, tại đây bạn bấm vào Add.
Tiếp theo, giao diện như trong ảnh sẽ hiện lên, bạn bấm vào Allow a previously detected exploit => nhấp chọn vào chương trình của bạn trong danh sách bị liệt kê là phần mềm độc hại => cuối cùng, bạn bấm Done để cho phép chương trình của bạn chạy.
Sau đó, bạn thoát ra, kiểm tra lại xem có chương trình nào chạy ngầm hay không như lỗi ở phía trên, sau đó bấm Run để chạy lại lần nữa.
Sửa lỗi “Id returned 1 exit status” không xác định được nguyên nhân
Không ít trường hợp bị lỗi “Id returned 1 exit status” nhưng lại không xác định được nguyên nhân.
Ví dụ minh họa:
Bạn tạo ra một file source mới và không thể lưu do bị trùng tên, và dẫn đến lỗi “Id returned 1 exit status”. Trường hợp này bạn chỉ cần xóa file .cpp lỗi vừa được tạo ra và tạo lại 1 file source rồi đặt cái tên mới là ổn.
Một lỗi khác có thể xảy ra đối với phần mềm IDE Dev C++. Vì một số nguyên nhân nào đó bên trong phần mềm, khi bạn chạy chương trình viết bằng C/ C++ sẽ bị lỗi.
Cách giải quyết tạm thời bạn có thể thử là xóa phần mềm đi và cài đặt lại.
Chỉ cần bạn xác định được đúng nguyên nhân TinoHost đã liệt kê ở trên và sửa lỗi “ld returned 1 exit status” bằng cách tham khảo các biện pháp ở dưới, nếu chính xác bạn mất không đến 1 phút để sửa lỗi đâu! Nếu bạn muốn chắc chắn hơn, bạn có thể thử reset máy => mở chương trình lại và chạy. TinoHost chúc bạn thành công và gặt hái kết quả tốt đẹp trên con đường lập trình.
Những câu hỏi thường gặp về sửa lỗi “ld returned 1 exit status“
Nên làm gì khi lỗi vẫn xuất hiện dù đã áp dụng các cách trên?
Bạn nên thử đem chương trình đó chạy trên 1 máy khác. Nếu chương trình của bạn chạy bình thường, bạn có thể lựa chọn việc cài đặt lại Windows cho giải pháp cuối cùng.
Nên sử dụng phần mềm lập trình C nào?
Bạn có thể sử dụng Visual Studio Code phiên bản miễn phí dành cho cá nhân. Nếu máy tính của bạn không quá mạnh và không đủ dung lượng lưu trữ, bạn có thể sử dụng những phần mềm khác nhẹ hơn như: XCode, Netbean, Eclipse hoặc Dev C++,…
Làm thế nào để học lập trình C trên điện thoại?
Để học lập trình C, C++, bạn có thể tải những ứng dụng như sau trên điện thoại Android của mình để học: SoloLearn, Encode, Codemurai, Mimo, Grasshopper, Programming Hero, Tynker, Enki App,… Trong những app này, cá nhân tôi sử dụng SoloLearn để học nhiều nhất.
Bạn có thể học lập trình C tại trang learn-c.org hoàn toàn miễn phí và rất bổ ích.
Vì sao các thầy lại khuyến khích sinh viên học ngôn ngữ C?
Câu trả lời khá đơn giản, vì ngôn ngữ C là một ngôn ngữ nền tảng, sau khi bạn đã trở thành bậc thầy với ngôn ngữ C, bạn có thể học bất cứ ngôn ngữ lập trình nào khác mà không phải tốn quá nhiều thời gian.