我正在尝试编译.c文件但是我得到了“未定义的引用”错误,即使我放了必要的包含。顺便说一句,你可以在我的代码的标题中看到,我对#include drive.h没有任何问题,但是使用#include硬件就像gcc忽略了这一行。
这是我的代码,谢谢你:)
顺便说一下,我正在编译:gcc drive.c #include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include "include/hardware.h"
#include "drive.h"
static void empty_it(){
return ;
}
int main(int argc , char** argv){
unsigned int numCyl ;
unsigned int numSec ;
unsigned char* buffer ;
unsigned int i ;
/* init hardware */
/* on initialise toujours le materiel de la meme facon*/
if(init_hardware("hardware.ini") == 0){
fprintf(stderr, "hardware initialisation error ! \n");
exit(EXIT_FAILURE) ;
}
/* Interrupt handlers */
for(i=0 ;i<16;i++){
IRQVECTOR[i] = empty_it ;
}
/* Allows all IT */
_mask(1);
assert(argc == 3);
numCyl = atoi(argv[1]) ;
numSec = atoi(argv[2]) ;
buffer = malloc(sizeof(char) *HDA_SECTORSIZE);
assert(buffer);
read_sector(numCyl , numSec , buffer);
for(i=0;i<HDA_SECTORSIZE;i++)
printf("%01X\n", buffer[i]);
free(buffer) ;
return EXIT_SUCCESS ;
}
答案 0 :(得分:2)
包含头文件不会添加函数的定义,只会添加它们的声明。要添加定义,请执行以下操作:
您的问题是,不包含帮助您的具体信息,例如read_sector()
是什么?但是对你当前问题的一般回答是这样的。