QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 996|回复: 6

:?: gcc problem

[复制链接]
发表于 2005-11-10 16:24:47 | 显示全部楼层 |阅读模式
have installed gcc-3.4.2-sol9-sparc-localon my Solaris server
( OS version 9) and after that I have tried to run gcc and i received a error
bash-2.05# ld.so.1: gcc: fatal: libiconv.so.2: open failed: No such file
or directory
Killed

Can I please get help to solve this issue ?
bash-2.05# pkgadd -d gcc-3.4.2-sol9-sparc-local

The following packages are
available:
1 SMCgcc gcc
(sparc) 3.4.2
Select
package(s) you wish to process (or 'all' to process
all packages). (default:
all) [?,??,q]: all

i also can't find libiconv.so.2 in other directory

thanks
发表于 2005-11-11 12:43:41 | 显示全部楼层
Seems gcc is looking for libiconv, the i18n library. Check to see if this package is available for Solaris 9.
回复

使用道具 举报

 楼主| 发表于 2005-11-11 15:37:29 | 显示全部楼层
谢谢wolf0403的答复!
我刚接触solaris,所以还不太懂能不能说明白点the i18n library是什么?我怎么才能找到合适的软件包,我看gcc-3.4.2-sol9-sparc-localon 后面是sol9,我操作系统也是sol9啊,我后来又装了gcc-3.4.2-sol9-intel-local,没那问题却又出现
bash-2.05# gcc
bash: /usr/local/bin/gcc: cannot execute binary file
他们两版本有什么区别阿,我是不是还应该装原来的那版本?怎么解决啊?
另外我在ftp.sunfreeware.com上看到 gcc-3.4.2.tar.gz   这跟前两又有什么区别?
希望能多给些指导,能尽快解决。。
回复

使用道具 举报

发表于 2005-11-11 16:17:14 | 显示全部楼层
你装 sol9 的是什么机器?x86 的还是 sparc 的?gcc-3.4.2-sol9-sparc-* 是针对 SPARC 系统的,-intel-* 是针对 x86 的。看起来你用的是 sparc 平台的机器?重新装 -sparc-* 的 gcc 吧。

另外,找找看有没有 libiconv-?.?.?-sol9-sparc 的,装一下。libiconv 是一个用于 i18n (软件国际化)的包。

我很少用 Solaris 系统,一个是彻底的用户,写写 Java 程序;一是 VM 装了个 Sol10 看看 JDS,至今没装过软件。不过这些包应该在一定程度与 Linux 是一样的吧。
sunfreeware 上的包,我不清楚是怎么回事。:)
回复

使用道具 举报

 楼主| 发表于 2005-11-11 18:17:07 | 显示全部楼层
谢谢,这问题我后来已经解决了,跟你说的一样,我也是找libiconv-1.8-sol9-sparc-local装了下,这东西就是麻烦第一次装好多要摸索,还要多向你请教!
回复

使用道具 举报

 楼主| 发表于 2005-11-12 10:15:44 | 显示全部楼层
bash-2.05#gcc
gcc: no input files
是不是已经安装好了?
但我输入
bash-2.05# gcc -lm
未定义                  文件中的
符号                       在文件中
main                                /usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2/crt1.o
ld: 致命的: 符号参照错误. 没有输出被写入a.out
collect2: ld returned 1 exit status
这是什么原因?我利用gcc安装QT也是出现:符号参照错误 ,应该是gcc的问题吧
回复

使用道具 举报

发表于 2005-11-12 10:46:19 | 显示全部楼层
晕……中文看着真不习惯,翻译得很 XX 的样子。

[code:1]$ gcc -lm
/usr/lib/gcc/i386-redhat-linux/4.0.0/../../../crt1.o(.text+0x18): In function `_start':
: undefined reference to `main'
collect2: ld returned 1 exit status
[/code:1]

gcc -lm 里 -lm 表示在 libm 里搜索符号,而你在 -lm 之前没有给出需要编译的对象啊。链接的时候,编译器会期望找到 main 函数,而你没有给出这个函数,当然会导致链接错误。你试试这样:

[code:1]$ cat >dummy.c<<EOF
int main () {return 0;}
EOF
$ gcc dummy.c -lm
[/code:1]
应该是不会出错的。
至于 QT,我不清楚。你给出的错误信息太少了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 04:26 , Processed in 0.038284 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表