LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 803|回复: 2

【求助】intel C++编译器的hello world无法编译,询问原因。

[复制链接]
发表于 2009-5-7 07:00:34 | 显示全部楼层 |阅读模式
这个问题可能比较菜鸟。各位多帮忙了。

我安装了SLES11,而后又安装了intel C 编译器10.1

配置环境变量
  1. >source /opt/intel/cc/10.1.022/bin/iccvars.sh
复制代码


参照iccvars.sh中的设置,同时将需要的环境变量加入到~/.profile当中。

可以通过icc和gcc编译执行C语言的hello world,代码如下:
  1. #include <stdio.h>
  2. main(){
  3.            printf("hello world\n");
  4. }
复制代码


好啦,下面就是问题了。
问题出在,当我使用icc编译C++的hello world的时候,就无法编译,给出相应错误信息。
Hello world 的代码
  1. #include <stdio.h>
  2. #include <iostream>
  3. int main() {
  4.      std::cout << "Hello World !" << std::endl;
  5.      return 0; }
复制代码


出错信息
  1. >icc hello.cc -o hello
  2. ld: skipping incompatible /usr/lib64/gcc/x86_64-suse-linux/4.3/32/../libstdc++.so when searching for -lstdc++
  3. ld: skipping incompatible /usr/lib64/gcc/x86_64-suse-linux/4.3/32/../libstdc++.a when searching for -lstdc++
  4. ld: cannot find -lstdc++
复制代码


几点说明:
  • 我认为是ld连接出现问题,但是不知道应该怎么解决。环境变量LD_LIBRARY_PATH=/opt/intel/cc/10.1.022/lib:/opt/intel/fc/10.1.022/lib
  • 我还在/usr/lib中找到了libstdc++.so.5,不过很显然,并不起作用;
  • g++可以正常编译以上C++代码;
  • 我也尝试过icpc,错误提示是一样的。


最后,谢谢各位帮忙吧。
发表于 2009-5-7 10:23:37 | 显示全部楼层
#include <iostream>

using namespace std;

int main() {
     cout << "Hello World !" << endl;
     return 0;
}

你试试这样写看看。。。又或者ENDL前不要加STD::
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-11 12:40:22 | 显示全部楼层
Post by Magic_QQQ;1984359
#include <iostream>

using namespace std;

int main() {
     cout << "Hello World !" << endl;
     return 0;
}

你试试这样写看看。。。又或者ENDL前不要加STD::


抱歉,回复的太慢了,按照你说的,我试过了,还是不行。

现在重新安装了系统,和icc编译器。现在已经可以使用了。至于到底是什么问题,我还是选择了逃避的方法。呵呵。以后有机会再说吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

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