Tôi đang sử dụng MinGW. Tôi có một số mã mà gọi malloc và một vài chức năng mục đích chung khác. Khi tôi nhập:MinGW không xác định tham chiếu đến malloc, miễn phí, sprintf, _beginthreadex
gcc TestCode.c
Tôi nhận được tệp a.exe, nó hoạt động hoàn hảo và tôi không nhận được bất kỳ cảnh báo nào.
Nếu tôi gõ này:
gcc -c TestCode.c -o TestCode.o
ld *.o
tôi nhận được một bó toàn bộ các cảnh báo như:
TestCode.o:TestCode.c:(.text+0xa): undefined reference to `__main'
TestCode.o:TestCode:(.text+0x2e): undefined reference to `printf'
TestCode.o:TestCode:(.text+0x42): undefined reference to `_strerror'
TestCode.o:TestCode:(.text+0x69): undefined reference to `snprintf'
TestCode.o:TestCode:(.text+0x7e): undefined reference to `malloc'
TestCode.o:TestCode:(.text+0x93): undefined reference to `_strerror'
TestCode.o:TestCode:(.text+0xb1): undefined reference to `sprintf'
TestCode.o:TestCode:(.text+0xcf): undefined reference to `free'
Tôi giả định này là một vấn đề với cách tôi đang kêu gọi các mối liên kết. Như vậy, tôi sẽ chỉ đăng mã nếu nó không rõ vấn đề là gì. Tôi hy vọng đây là một sửa chữa dễ dàng và tôi chỉ đơn giản là quên bao gồm một số thư viện siêu rõ ràng khi liên kết.
có thể trùng lặp với [Lỗi liên kết trong khi sử dụng trình biên dịch MinGW (không thể tìm thấy __main)] (http://stackoverflow.com/questions/4981826/link-error-while-using-mingw-compiler-cant-find- chính) –