- 论坛徽章:
- 0
|
原帖由 prolj 于 2009-9-5 09:37 发表 ![]()
1、用gcc的-c选项生成.o文件,如
gcc -c test1.c test2.c test3.c
编译后会生成test1.o test2.o test3.o三个目标文件。
2、然后用ar命令生成.a文件,如
ar crv test.a test1.o test2.o test3.o
试了下,但在仿照下面的做法
%gcc -c out.c
%ar -cr libout.a out.o
%gcc -o pig main.c -L. -lout
会在第三步产生很多类似undefine reference to 'XOpenDevice'的错误。
.c文件的头文件如下:
#include <X11/Xlib.h>
#include <X11/Xos.h>
#include <X11/Xutil.h>
#include <X11/Xmd.h>
#include <X11/extensions/XI.h>
#include <X11/extensions/XInput.h>
#include "fcntl.h"
#include <ctype.h>
#include "stdio.h"
imakefile文件如下:
XCOMM $XConsortium: Imakefile,v 1.4 93/08/16 16:07:59 rws Exp $
DEPLIBS = $(DEPXLIB) $(DEPXILIB)
LOCAL_LIBRARIES = $(XLIB) $(XILIB)
# SYS_LIBRARIES = MathLibrary
#DEPLIBS= $(DEPXONLYLIB)
#LOCAL_LIBRARIES = $(XONLYLIB)
SRCS = tvs.c
OBJS = tvs.o
ComplexProgramTarget(tvs)
InstallAppDefaults(tvs)
以前是通过xmkmf -a 生成Makefile的,然后执行make产生执行文件。 |
|