我有3个文件:
Undefined symbols for architecture x86_64: "_insertItem", referenced from: _main in main-788b5b.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) Quocs-MBP:A3 jarvis$
#ifndef _TABLE_H
#define _TABLE_H
//---------------------------------------------------------------------
--------
// CONSTANTS AND TYPES
//---------------------------------------------------------------------
--------
#ifndef _BOOL_
typedef enum BOOL { false, true } bool;
#endif
//---------------------------------------------------------------------
--------
// PROTOTYPES
//---------------------------------------------------------------------
--------
// add an element to the table
// Return TRUE if the item is in the table
// Return FALSE if the item is *not* in the table
bool insertItem( int item );
// removes the int from the table
bool removeItem( int item );
// empty the table so that we clear all memory and can start a fresh
table
void clearTable( );
// tells us whether or not the given item is in the table
bool search( int item );
// table iterators
// Return TRUE if item was assigned
// Return FALSE if item was *not* assigned
bool firstItem( int * const item );
bool nextItem( int * const item );
#endif
我在table.c中进行了测试,并且每个测试都是正常的,因此我不在此处进行测试。以下是main.c的第一部分:
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include "table.h"
//typedef enum BOOL { false, true } bool;
// Linked list node definition
typedef struct Node node;
这是我尝试使用功能insertItem(int Item)的地方:
//TEST insertItem(int Item) function
//Case: Insert to an empty table
//insertItem(0);
if(top ==NULL){
printf("THE TABLE IS EMPTY\n");
}
insertItem(10);
print();
return 0;
}
很抱歉,如果我的帖子含糊或无效,我是StackOverflow的新手。谢谢。
答案 0 :(得分:0)
我已经看到了。
make clean; make
您正在尝试使用上一次x86构建的build输出垃圾桶为x64构建。效果不太好。