0
.cファイルをコンパイルしようとしていますが、必要なインクルードファイルを置いても "未定義参照"エラーが発生します。ちなみに、私のコードのヘッダにあるように、#include drive.hとは何の問題もありませんが、gccのように#includeハードウェアはこの行を無視しています。ここxxxインクルードへの未定義の参照は機能しません。
は私のコードで、あなたに感謝:)
を、私はこのようにコンパイルしてるの方法によって:ヘッダファイルを含む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 ;
}
*リンクエラー*のようです。適切なライブラリとリンクするには、gccで適切な '-lmy_library_name'パラメータが必要です。 – chrisaycock
は正確なエラーメッセージを表示します – pm100