【发布时间】:2018-04-22 18:36:52
【问题描述】:
我已将头文件“msg_queue.h”实现到名为“msg_queue.c”的非主文件中。从这里我创建了一个名为“mq_test.c”的主文件,我创建了一个消息队列并调用了在“msg_queue.c”中实现的函数。然而,当我运行“make”命令时,似乎每个调用的函数都会出现这个错误:
"enqueue", referenced from:
_main in test.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [qmsgtest] Error 1
似乎是什么问题,我没有正确实现结构吗?
头文件:
#ifndef MessageQueue_H
#define MessageQueue_H
typedef struct node{
int data;
struct node *next;
} Node;
typedef struct {
Node *front;
Node *rear;
} MessageQueue;
void enqueue(...); // enqueue
...
#endif //MessageQueue_H
实现头文件的文件:
#include "MessageQueue_H.h"
#ifndef MessageQueue_H
#define MessageQueue_H
/* Interface for integer MQueue */
typedef struct node{
int data;
struct node *next;
} Node;
typedef struct {
Node *front;
Node *rear;
} MQueue;
void enqueue(... ){ // enqueue
....
【问题讨论】:
标签: c file linker header queue