本版版主招募中

 
标题: [疑问] 关于在Solaris 10上 gcc编译的问题(请大家帮忙,谢谢)
xingyu820424 (Maksim)
LU幼天使
Rank: 2


UID 36819
精华 0
积分 51
帖子 93
活跃指数 16
LU金币 2115 个
LU金条 0 个
阅读权限 20
注册 2005-11-21
 
发表于 2007-8-28 08:14  资料  个人空间  短消息  加为好友 
关于在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天了.都没解决.





我是新手,谁怕谁啊
顶部
xingyu820424 (Maksim)
LU幼天使
Rank: 2


UID 36819
精华 0
积分 51
帖子 93
活跃指数 16
LU金币 2115 个
LU金条 0 个
阅读权限 20
注册 2005-11-21
 
发表于 2007-8-28 09:42  资料  个人空间  短消息  加为好友 
后来又下载了一个GCC 3.4.6 for solaris 10,安装上去,设置PATH 为新安装的GCC 目录下(/usr/local/bin)
也同样遇见以上的问题





我是新手,谁怕谁啊
顶部
xingyu820424 (Maksim)
LU幼天使
Rank: 2


UID 36819
精华 0
积分 51
帖子 93
活跃指数 16
LU金币 2115 个
LU金条 0 个
阅读权限 20
注册 2005-11-21
 
发表于 2007-8-28 09:43  资料  个人空间  短消息  加为好友 
后来又下载了一个GCC 3.4.6 for solaris 10,安装上去,设置PATH 为新安装的GCC 目录下(/usr/local/bin)
也同样遇见以上的问题





我是新手,谁怕谁啊
顶部
大漠孤星
管理员
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20


LU爱心使者  
UID 257
精华 24
积分 3097
帖子 4279
活跃指数 570
LU金币 2934 个
LU金条 422 个
阅读权限 255
注册 2003-9-30

用支付宝求购
 
发表于 2007-8-28 10:29  资料  个人空间  短消息  加为好友  添加 大漠孤星 为MSN好友 通过MSN和 大漠孤星 交谈 QQ
试试gcc -o appsnd6 -I/home/app/h -L/yourlibapp.a path/libapp.a  appsnd6.c


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





顶部
romanheart
LU新生
Rank: 1



UID 110235
精华 0
积分 1
帖子 1
活跃指数 0
LU金币 1 个
LU金条 0 个
阅读权限 10
注册 2008-8-11
 
发表于 2008-8-11 12:01  资料  个人空间  短消息  加为好友  添加 romanheart 为MSN好友 通过MSN和 romanheart 交谈
我也出现了这种错误,考了ccs就可以了

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

顶部
qq6104615
LU新生
Rank: 1



UID 110194
精华 0
积分 11
帖子 22
活跃指数 0
LU金币 22 个
LU金条 0 个
阅读权限 10
注册 2008-8-9
 
发表于 2008-8-12 13:55  资料  个人空间  短消息  加为好友  QQ
1051


顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
freestream
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14



UID 86
精华 2
积分 89
帖子 165
活跃指数 11
LU金币 6129 个
LU金条 0 个
阅读权限 200
注册 2003-9-22
 
发表于 2008-8-18 17:40  资料  个人空间  短消息  加为好友 
原因出在你的libapp.a和目前的编译器不兼容,建议重新编译一下。

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

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

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
 



当前时区 GMT+8, 现在时间是 2008-11-24 04:46
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.119216 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver