- 论坛徽章:
- 0
|
> cat vio.c:
#include <stdio.h>
#include <stdlib.h>
#include </usr/wsj/include/vio.h>
void inits( )
{ initscr ( );
raw( );
noecho( );
keypad(stdscr,TRUE);
}
void ends( )
{ keypad(stdscr,FALSE);
echo( );
noraw( );
endwin( );
}
void cls( )
{ clear( );
refresh( );
}
void xystr(x,y,str)
int x,y;
char *str;
{ short i;
move(x,y);
for(i=0;i<strlen(str);i++)
addch(SPACE);
refresh( );
move(x,y);
addstr(str);
refresh( );
}
> makefile 文件
obj/vio.o: vio.c
cc -DM_TERMINFO vio.c -ltinfo -c
@mv vio.o obj
libvio.a: obj/vio.o include/vio.h
rm /usr/wsj/lib/libvio.a
ar -q /usr/wsj/lib/libvio.a obj/vio.o
granlib /usr/wsj/lib/libvio.a
@chmod 0777 /usr/wsj/lib/libvio.a
得到静态库libvio.a
引用:libvio.a
> cat test .c
#include "/usr/wsj/include/vio.h"
main( )
{
char *str="欢迎光临";
int x=12,y=36;
inits( );
xystr(x,y,str);
ends( );
}
编译:
〉cc -DM_TERMINFO vid.c -ltinfo -L/usr/wsj/lib -lvio -o vid
结果出错如下:
$cc -DM_TERMINFO vid.c -ltinfo -L/usr/wsj/lib -lvio -o vid
undefined first referenced
symbol in file
initscr32 /usr/wsj/lib/libvio.a
raw /usr/wsj/lib/libvio.a
noecho /usr/wsj/lib/libvio.a
stdscr /usr/wsj/lib/libvio.a
keypad /usr/wsj/lib/libvio.a
echo /usr/wsj/lib/libvio.a
noraw /usr/wsj/lib/libvio.a
endwin /usr/wsj/lib/libvio.a
wclear /usr/wsj/lib/libvio.a
wrefresh /usr/wsj/lib/libvio.a
wmove /usr/wsj/lib/libvio.a
w32addch /usr/wsj/lib/libvio.a
waddstr /usr/wsj/lib/libvio.a
i386ld fatal :Symbol referencing errors. No output written to vid
$ |
|