当前位置: 技术问答>linux和unix
急!关于sybase程序从sco移植到solaris的问题!
来源: 互联网 发布时间:2015-03-29
本文导语: 我把一个在sco unix上开发的关于Sybase通信的程序移植到solaris上,编译除了问题,无法解决,请高手帮忙!急! 这是make的错误报告: $ make cc -g -o Term Term.o errexit.o dessource.o encode.o crtsock...
我把一个在sco unix上开发的关于Sybase通信的程序移植到solaris上,编译除了问题,无法解决,请高手帮忙!急!
这是make的错误报告:
$ make
cc -g -o Term Term.o errexit.o
dessource.o encode.o
crtsock.o tcpfunc.o -lsocket
func.o sql.o TMproc.o
/sybase/OCS-12_5/lib/libsybdb64.a -lnsl -lm -s
ld: 警告: 文件 /sybase/OCS-12_5/lib/libsybdb64.a(bind.o): 错误的 ELF 类型: ELF
CLASS64
未定义 文件中的
符号 在文件中
dbretdata sql.o
dbsqlexec sql.o
dbretlen sql.o
dbloginfree sql.o
dbfreebuf TMproc.o
dbcancel sql.o
dbmsghandle sql.o
dbopen sql.o
dbaltbind sql.o
dbnumcompute sql.o
dblogin sql.o
dberrhandle sql.o
dbinit sql.o
dbsqlok sql.o
dbnumcols sql.o
dbnumrets sql.o
dbretstatus sql.o
dbdead sql.o
dbsetlbool sql.o
dbnumalts sql.o
dbsetlname sql.o
dbbind sql.o
dbresults sql.o
dbconvert sql.o
dbcmd sql.o
dbclose Term.o
dbhasretstat sql.o
dbsqlsend sql.o
dbnextrow sql.o
ld: 致命的: 符号参照错误. 没有输出被写入Term
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `Term'
上面好像是报告类库连接的错误,但我是照着sybase上的sample中的makefile重写的,但就是不对,为什么!?
这是make的错误报告:
$ make
cc -g -o Term Term.o errexit.o
dessource.o encode.o
crtsock.o tcpfunc.o -lsocket
func.o sql.o TMproc.o
/sybase/OCS-12_5/lib/libsybdb64.a -lnsl -lm -s
ld: 警告: 文件 /sybase/OCS-12_5/lib/libsybdb64.a(bind.o): 错误的 ELF 类型: ELF
CLASS64
未定义 文件中的
符号 在文件中
dbretdata sql.o
dbsqlexec sql.o
dbretlen sql.o
dbloginfree sql.o
dbfreebuf TMproc.o
dbcancel sql.o
dbmsghandle sql.o
dbopen sql.o
dbaltbind sql.o
dbnumcompute sql.o
dblogin sql.o
dberrhandle sql.o
dbinit sql.o
dbsqlok sql.o
dbnumcols sql.o
dbnumrets sql.o
dbretstatus sql.o
dbdead sql.o
dbsetlbool sql.o
dbnumalts sql.o
dbsetlname sql.o
dbbind sql.o
dbresults sql.o
dbconvert sql.o
dbcmd sql.o
dbclose Term.o
dbhasretstat sql.o
dbsqlsend sql.o
dbnextrow sql.o
ld: 致命的: 符号参照错误. 没有输出被写入Term
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `Term'
上面好像是报告类库连接的错误,但我是照着sybase上的sample中的makefile重写的,但就是不对,为什么!?
|
你说你的编译成64位的选项是-64,没忘了cc时加它吧。
cc -c -64 -DSYB_LP64 -I$(SYBASE_OCS)/include sql.c
file sql.o
cc -c -64 -DSYB_LP64 -I$(SYBASE_OCS)/include sql.c
file sql.o
|
没有找到sysbase库文件,可能是你的路径设置不对:
LIBSYB = /usr/sybase/lib/libsybdb.a -lnsl_s -s
# include
INCSYB = -I/usr/sybase/include
LIBSYB是你在solaris安装目录,你在此目录看看十分存在libsybdb.*文件。
INCSYB 路径是不是不对。
LIBSYB = /usr/sybase/lib/libsybdb.a -lnsl_s -s
# include
INCSYB = -I/usr/sybase/include
LIBSYB是你在solaris安装目录,你在此目录看看十分存在libsybdb.*文件。
INCSYB 路径是不是不对。
|
从错误信息看起来,是相应的库没找到。
|
-m64 试试