LoveUnix » 编程开发 & Rational » 关于在Solaris 10上 gcc编译的问题(请大家帮忙,谢谢)
让LU留住您的每

一天 让LU博客留住您的每一天
2007-8-28 08:14 xingyu820424
关于在Solaris 10上 gcc编译的问题(请大家帮忙,谢谢)

在Solaris10上自带gcc 3.4.3,
我有一个程序 appsnd6, 有自己的头文件和库文件(libapp.a)
用的用户是app用户, SHELL=/bin/sh
开始:
gcc -I/home/app/h -c appsnd6.c   能够生成appsnd6.o文件,没有问题
但在进行 ld -L/home/app/obj -lapp -o appsnd6 appsnd6.o的时候 报以下错误:
Undefined                       first referenced
symbol                             in file
exit                                appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
free                                appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
puts                                appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
stat                                appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
time                                appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
errno                               appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
fread                               appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
mkdir                               appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
app_defval                        appsnd6.o
closedir                            appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
app_stop                          appsnd6.o
app_init                          appsnd6.o
app_open                          appsnd6.o
Ctl_tr                              appsnd6.o
set_format                          appsnd6.o
opendir                             appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
fclose                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
fflush                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
getenv                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
fwrite                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
remove                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
strcat                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
strcmp                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
strcpy                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
strdup                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
strlen                              appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
realloc                             appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
localtime                           appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
app_rcv                           appsnd6.o
app_snd                           appsnd6.o
strncpy                             appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
tr_pdmp                             appsnd6.o
tr_pmsg                             appsnd6.o
strerror                            appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
strftime                            appsnd6.o  (symbol belongs to implicit dependency /usr/lib/libc.so.1)
app_close                         appsnd6.o
app_abort                         appsnd6.o
ld: fatal: Symbol referencing errors. No output written to appsnd6

如果我直接使用gcc -I/home/app/h -L/home/app/obj -lapp -o appsnd6 appsnd6.c命令,则以下报错信息:
Undefined                       first referenced
symbol                             in file
app_defval                        /var/tmp//cckoW6Yo.o
app_stop                          /var/tmp//cckoW6Yo.o
app_init                          /var/tmp//cckoW6Yo.o
app_open                          /var/tmp//cckoW6Yo.o
Ctl_tr                              /var/tmp//cckoW6Yo.o
set_format                          /var/tmp//cckoW6Yo.o
app_rcv                           /var/tmp//cckoW6Yo.o
app_snd                           /var/tmp//cckoW6Yo.o
tr_pdmp                             /var/tmp//cckoW6Yo.o
tr_pmsg                             /var/tmp//cckoW6Yo.o
app_close                         /var/tmp//cckoW6Yo.o
app_abort                         /var/tmp//cckoW6Yo.o
ld: fatal: Symbol referencing errors. No output written to appsnd6
collect2: ld returned 1 exit status

应该是连接库的时候,有问题,希望大家帮忙,本人万分感谢,已经想了很多办法折腾了4天了.都没解决.

2007-8-28 09:42 xingyu820424
后来又下载了一个GCC 3.4.6 for solaris 10,安装上去,设置PATH 为新安装的GCC 目录下(/usr/local/bin)
也同样遇见以上的问题

2007-8-28 09:43 xingyu820424
后来又下载了一个GCC 3.4.6 for solaris 10,安装上去,设置PATH 为新安装的GCC 目录下(/usr/local/bin)
也同样遇见以上的问题

2007-8-28 10:29 大漠孤星
试试gcc -o appsnd6 -I/home/app/h -L/yourlibapp.a path/libapp.a  appsnd6.c


注意在.profile中设置对LIBPATH以及LD_LIBRARY_PATH以及PATH

2008-8-11 12:01 romanheart
我也出现了这种错误,考了ccs就可以了

我也出现了这种错误,考了ccs就可以了

2008-8-12 13:55 qq6104615
1051

[img]http://www.51-boke.cn/work/pic/106.jpg[/img]




[img]http://www.51-boke.cn/work/fengexian.gif[/img]
[url=http://www.pengchen020.com/pc/jy_panyu_buxiugang.htm]广州市番禺区废不锈钢收购公司网[/url],[url=http://www.feipin020.com/fpcom/jy_dagang_buxiugang.htm]广州市大岗废不锈钢回收公司电话[/url]

2008-8-18 17:40 freestream
原因出在你的libapp.a和目前的编译器不兼容,建议重新编译一下。

ld 缺省情况下会用Sun Studio的C/C++的运行库,而不是GCC的,因此,建议连接时也用gcc而不要直接用ld命令。
一般连的gcc静态库是libgcc.a,动态库是libgcc_s.so。
不过,在solaris下,sun studio 11开始就免费,自己开发的程序,实在没有再用gcc的必要。

[[i] 本帖最后由 freestream 于 2008-8-18 17:42 编辑 [/i]]

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.