[求助]gcc 编译c++程序问题,急!急!急!Unix系统 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    兄弟在solaris8forintel上安装了 libgcc-3.2-sol8-intel-local,gcc-3.2-sol8-intel-local,make-3.79.1-sol8-intel-local 可以编译c程序,

[求助]gcc 编译c++程序问题,急!急!急!Unix系统

。 但是编译如下c++程序后: //b.C #includeiostream classA{ public: voidprint(){printf(gnuc++class\n#59;} } main(

    兄弟在 solaris 8 for intel上安装了

    libgcc-3.2-sol8-intel-local, gcc-3.2-sol8-intel-local,make-3.79.1-sol8-intel-local

    可以编译c程序。

    但是编译如下c++程序后:

    // b.C

    #include 

    class A{

    public:

    void print() { printf("gnu c++ class\n"; }

    };

    main()

    {

    A a;

    a.print();

    }

    ///////

    g++ -o b b.C

    # ./b

    ld.so.1: ./b: fatal: libstdc++.so.5: open failed: No such file or directory

    Killed

    而如下的c++程序编译不了:

    ///wen.C

    #include 

    main()

    {

    cout<<"gnu c++"<

    }

    ///////////

    g++ -o wen wen.C

    wen.C: In function `int main()':

    wen.C:5: `cout' undeclared (first use this function)

    wen.C:5: (Each undeclared identifier is reported only once for each function it

    appears in.)

    wen.C:5: `endl' undeclared (first use this function)

    make: *** [wen] Error 1

    各位高人,如何办,请帮助

    sql2000 回复于:2002-10-10 13:02:18新手吧,INCLUDE 都会写错,

    #include 

    如果写错当然不知道COUT,ENDL之类的东西了。

    samhoo 回复于:2002-10-10 13:22:32# ./b

    ld.so.1: ./b: fatal: libstdc++.so.5: open failed: No such file or directory

    Killed

    是因为找不到libstdc++动态链接库,把该库加到搜索路径环境变量中$LD_LIBRARY_PATH。

    或者是其他路径变量,你man ld会看到说明。

    zsh365 回复于:2002-10-10 13:23:26大哥,现在c++已经标准化了,可以使用

    #include

    #include

    #include

    ......

    sql2000 回复于:2002-10-10 13:43:41[quote][b]下面引用由[u]zsh365[/u]在 [i]2002/10/10 01:23pm[/i] 发表的内容:[/b]

    大哥,现在c++已经标准化了,可以使用

    #include

    #include

    #include

    ...

    [/quote]

    那我就不清楚了,我只是在学数据结构的时候用过。

    不过你的第二个的提示确实是不认识cout, endl 之类的呀!

    跟没有include  的情况是一样的呀,不如让斑竹把帖子转到C++论坛去吧。

    zsh365 回复于:2002-10-10 13:52:10samhoo兄讲的是对的。

    [quote][b]下面引用由[u]samhoo[/u]在 [i]2002/10/10 01:22pm[/i] 发表的内容:[/b]

    # ./b

    ld.so.1: ./b: fatal: libstdc++.so.5: open failed: No such file or directory

    Killed

    是因为找不到libstdc++动态链接库,把该库加到搜索路径环境变量中$LD_LIBRARY_PATH。

    ...

    [/quote]

    我将

    export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib

    就可以运行b了,

电脑资料

[求助]gcc 编译c++程序问题,急!急!急!Unix系统》(https://www.unjs.com)。

    在linux上gcc是可以编译上面那个wen.C的,我试过。

    还有那个问题我确实想问高手解决。

    zsh365 回复于:2002-10-10 14:47:02请版主将这个帖子置顶!

    mmmmn 回复于:2002-10-10 17:05:20我是看不懂。。。。

    avlee 回复于:2002-10-10 17:08:13std:cout或者using namespace std;

    wsye 回复于:2002-10-10 17:42:47Unix支持编译C++的类吗?

    我那时也是这样的错误啊

    zsh365 回复于:2002-10-10 18:07:52avlee兄是对的。

    谢谢各位大哥了。

    萧筱筱 回复于:2002-10-10 21:22:52看不懂。。。

    zmcc135 回复于:2002-10-11 01:42:31[quote][b]下面引用由[u]sql2000[/u]在 [i]2002/10/10 01:43pm[/i] 发表的内容:[/b]

    那我就不清楚了,我只是在学数据结构的时候用过。

    不过你的第二个的提示确实是不认识cout, endl 之类的呀!

    跟没有include  的情况是一样的呀,不如让斑竹把帖子转到C++论坛去吧。

    [/quote]

    怎么C++现在可以这么写了么?

    我原来的印象也是和sql2000一样的啊

    zsh365 回复于:2002-10-11 13:27:01问题已经由samhoo兄 和 avlee兄解决了。

    好像是1999年,c++进行了标准化。之后支持标准化的编译器可以使用

    #include

    等不带.h的头文件。

    gcc有了一个库叫libstdc++,安装了这个库以后就可以使用上述的头文件了。

    而且使用#include  编译时会有waring:

    ///////////////////////////

    ////wen1.C

    #include

    main()

    {

    cout<<"gnu c++"<

    }

    ////////////////////

    g++ -o wen1 wen1.C

    In file included from /usr/local/include/c++/3.2/backward/iostream.h:31,

    from wen1.C:1:

    /usr/local/include/c++/3.2/backward/backward_warning.h:32:2: warning: #warning .

    ilike911 回复于:2002-10-11 13:32:57确实可以 不加  .h 了

    ilike911 回复于:2002-10-11 13:35:41c++ 确实可以 不加  .h 了

    jazy 回复于:2002-10-11 14:38:40自从国际标准组织将STL 纳入C++标准后,一般不用后缀.h了

    sql2000 回复于:2002-10-11 16:26:54g++ -o wen wen.C

    wen.C: In function `int main()':

    wen.C:5: `cout' undeclared (first use this function)

    wen.C:5: (Each undeclared identifier is reported only once for each function it

    appears in.)

    wen.C:5: `endl' undeclared (first use this function)

    make: *** [wen] Error 1

    我后来发帖子,不是讨论后缀的问题。

    我是说他编译时的错误和没有INCLUDE一样。

    那么简单的一个测试程序肯定不会是程序的问题,我在我的系统上编译过了,没问题。

    cout, endl在程序中不能正确解释,就是你INCLUDE有问题,他是在iostream中定义的。

    不然就是你的C++编译器有问题了,重装。

    ilike911 回复于:2002-10-11 17:08:47[quote][b]下面引用由[u]avlee[/u]在 [i]2002/10/10 05:08pm[/i] 发表的内容:[/b]

    std:cout或者using namespace std;

    [/quote]

    mycuzhoujun 回复于:2002-12-11 10:10:28iostream.h 和 iostream 这两个头文件及对应的so对数据的处理能力是不同。后者要强于前者。其它同前缀名的文件也相同。

    所以现只要是使用GCC的地方都不要使用带.h的STL库了。

   

    原文转自:http://www.ltesting.net

最新文章