makefile 如何获得LIB路径
idot 2008-07-30 07:24:08 功能:编译Pro*C程序
描述:首先调用C:/oracle/product/10.1.0/db/proc.exe 编译pc文件,生成c文件,
然后调用调用gcc,利用C:/oracle/product/10.1.0/db/precomp/LIB/msvc/ORASQL10.LIB 和
C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Lib目录下lib
(使用到的lib如下: kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib
odbc32.lib odbccp32.lib)和
C:/oracle/product/10.1.0/db/precomp/public 目录下的h文件
(使用到的h文件如下:sqlca.h sqlda.h sqlcrp.h)
生成exe文件。
我写的makefile内容如下:
CXXFLAGS = -O2 -g -Wall -fmessage-length=0
####################################### BEGIN USER DEFINITION #######################################
# Please set 'PROGRAM' to your real project name like below.
PROGRAM = zcolbgdc00001
CXX = gcc
ORADBHOME = C:/oracle/product/10.1.0/db
####################################### END USER DEFINITION #######################################
TARGET = $(PROGRAM).exe
OBJS = $(PROGRAM).o
ORAHEADERHOME = $(ORADBHOME)/precomp/public
vpath *.lib "$(ORADBHOME)/precomp/LIB/msvc":"C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Lib"
LIBS = ORASQL10.LIB kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
$(TARGET): $(OBJS)
@echo 'Building target: $@'
ld -o $(TARGET) $(OBJS)
@echo 'Finished building target: $@'
@echo 'Done.'
$(PROGRAM).o: $(PROGRAM).c
@echo 'Building target: $@'
$(CXX) -o"$(OBJS)" $(PROGRAM).c -I $(ORAHEADERHOME) $(LIBS)
@echo 'Finished building target: $@'
@echo '...'
$(PROGRAM).c: $(PROGRAM).pc
@echo 'Building target: $@'
${ORADBHOME}/bin/proc $(PROGRAM).pc oname=$(PROGRAM).c
@echo 'Finished building target: $@'
@echo '...'
all: $(TARGET)
clean:
rm -f $(OBJS) $(TARGET)
出错的信息如下:
'Building target: zcolbgdc00001.o'
gcc -o"zcolbgdc00001.o" zcolbgdc00001.c -I C:/oracle/product/10.1.0/db/precomp/public ORASQL10.LIB kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
zcolbgdc00001.c: In function `main':
zcolbgdc00001.c:381: warning: return type of 'main' is not `int'
gcc: ORASQL10.LIB: No such file or directory
gcc: kernel32.lib: No such file or directory
gcc: user32.lib: No such file or directory
gcc: gdi32.lib: No such file or directory
gcc: winspool.lib: No such file or directory
gcc: comdlg32.lib: No such file or directory
gcc: advapi32.lib: No such file or directory
gcc: shell32.lib: No such file or directory
gcc: ole32.lib: No such file or directory
gcc: oleaut32.lib: No such file or directory
gcc: uuid.lib: No such file or directory
gcc: odbc32.lib: No such file or directory
gcc: odbccp32.lib: No such file or directory
make: *** [zcolbgdc00001.o] Error 1
请问如何解决lib的路径问题。