Được rồi, tôi đã cố gắng làm việc với điều này trong thời gian dài nhất và tôi dường như không thể làm cho nó hoạt động đúng. Tôi có ba tệp, main.c
, hello_world.c
và hello_world.h
. Vì lý do nào đó, chúng dường như không biên dịch tốt, và tôi thực sự không thể hiểu tại sao ...Vấn đề tiêu đề C: #include và "tham chiếu không xác định"
Đây là các tệp nguồn của tôi. hello_world.c đầu tiên:
#include <stdio.h>
#include "hello_world.h"
int hello_world(void) {
printf("Hello, Stack Overflow!\n");
return 0;
}
Sau đó hello_world.h, đơn giản:
int hello_world(void);
Và cuối cùng main.c:
#include "hello_world.h"
int main() {
hello_world();
return 0;
}
Khi tôi đặt nó vào GCC, đây là những gì Tôi nhận được:
cc main.c -o main /tmp/ccSRLvFl.o: In function `main': main.c:(.text+0x5): undefined reference to `hello_world' collect2: ld returned 1 exit status make: *** [main] Error 1
Bất kỳ ai cũng có thể giúp tôi? Tôi thực sự bị mắc kẹt về điều này, nhưng tôi 99 phần trăm chắc chắn đó là một sửa chữa thực sự đơn giản.
Cảm ơn! Một trong những điều nhỏ nhặt mà chuyến đi lập trình. :) – user1018501
Mặc dù các tiêu đề bảo vệ là không cần thiết (trong ví dụ này) đó là một gợi ý tốt – KevinDTimm
@ user1018501: Nếu câu trả lời này giải quyết được vấn đề của bạn, bạn nên chấp nhận nó. – Job