• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            BillyYu

            在Linux中利用gcc編譯遇到問題

            最近想開始學習stl,但是利用VC6.0進行編譯的話,總會出現很多警告,而換用VS2005之類的,感覺太繁瑣,為了建立一個空的控制臺程序,要建立那么大一個文件,費得勁比較大,所以想著利用Linux中的gcc來編譯,只要寫一個.cpp的文件就可以了。可是對這個不是很了解,抄了一個文件進行編譯,卻出現好多的錯誤,可能是需要進行這樣那樣的設置的吧。特此立帖,希望達人能給我一些建議,如果可以能提供更好的編譯器,那是更加的好了。謝謝先了

            我用的sample

            sample

            輸出的錯誤:
            [root@localhost Cpp]# gcc SampleVector.cpp
            /tmp/ccJVmST1.o(.text+0x1ee): In function `main':
            : undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char,
            std::char_traits<char> >&)'
            /tmp/ccJVmST1.o(.text+0x1fe): In function `main':
            : undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char,
            std::char_traits<char> >&)'
            /tmp/ccJVmST1.o(.text+0x203): In function `main':
            : undefined reference to `std::cout'
            /tmp/ccJVmST1.o(.text+0x208): In function `main':
            : undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
            /tmp/ccJVmST1.o(.text+0x211): In function `main':
            : undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
            ……
            諸如此類的錯誤,我該怎么辦呢?

            posted on 2007-09-23 13:46 志華 閱讀(2259) 評論(3)  編輯 收藏 引用

            評論

            # re: 在Linux中利用gcc編譯遇到問題 2007-09-23 13:57 志華

            哎呀,以后還是要遵循一條原則:知之為知之,不知google之。 后來我去找了一下,這個錯誤是因為用錯了命令所致的,在linux中對C++的應用g++進行編譯,順便貼一下一個博客中的內容

            Linux C++ 自學筆記
            作者:未知 來源:http://www.51one.net (2005-03-21 13:39:10)


            Linux C++ 自學筆記
            1、安裝系統
            這就不用說了吧,我裝的是Redhat Linux 7.2,安裝過程智能化,價格也不貴(

            9CD+500頁手冊共69RMB),大家也都支持支持正版,還有一些簡單命令
            ls - 列目錄
            cd - 進入目錄
            man - 幫助
            gcc - 編譯器

            2、文本編輯器
            開如想用vi,發現不太好用,在圖形界面下找了個Advanced Editor,當文件存為.c或

            .cpp后,關鍵字自動以不同顏色顯示(呵呵,比windows的帥多了),支持縮格^I,趕

            快加入Favorites,菜單位置在KDE menus->Editors->Advanced Editor

            3、編譯C-“Hello world!”
            #include <stdio.h>

            int main(void)
            {
            printf("Hello world!\n");
            return 0;
            }
            存盤為Hello.c
            在命令行下輸入:gcc Hello.c -o hello (要注意大小寫哦)
            編譯時可能有如下警告:
            no newline at end of file
            在文件最后補一個新行即可
            執行文件:./hello
            呵呵,Hello world!可愛的字眼就出來了

            4、編譯C++ -“Hello world!”
            #include <iostream.h>

            int main()
            {
            cout << "Hello world!\n" << endl;
            return 0;
            }
            編譯出錯: undefined reference to ''cout''
            呀!怎么連cout都不認識,趕快查查,看man怎么說:
            man gcc
            哦,原來要用g++編譯C++程序
            g++ Hello.cpp -o hello

            5、編譯類
            有三個文件:Hello.h、Hello.cpp、MyFirst.cpp,內容如下:
            file://Hello.h
            #ifndef HelloH
            #define HelloH

            class Hello
            {
            Hello();
            void Display();
            }

            file://Hello.cpp
            #include "Hello.h"
            #include <iostream.h>

            Hello::Hello()
            {
            }

            Hello::Display()
            {
            cout << "Hello world!\n" << endl;
            }

            file://MyFirst.cpp
            #include <iostream.h>
            #include "Hello.h"

            int main()
            {
            Hello theHello;
            theHello->Display();

            return 0;
            }
            開始編譯:g++ MyFirst.cpp -o MyFirst
            呀,出錯:
            undefined reference to ''Hello::Hello(void)''
            undefined reference to ''Hello::Display()''
            呵,看來是不能鏈接Hello.cpp出錯,先改一下
            在MyFirst.cpp中:將#include "Hello.h"改為#include "Hello.cpp"
            編譯通過,在查查幫助,有參數 -c 可以只編譯不鏈接

            呵呵,天黑了,玩把帝國,晚上看看書,明天再接著來。


              回復  更多評論   

            # re: 在Linux中利用gcc編譯遇到問題 2007-09-23 21:51 AMXTSHMF

            呵呵,需要了解一下gcc編譯器,其實g++編譯時他會調用gcc,然后鏈接。  回復  更多評論   

            # re: 在Linux中利用gcc編譯遇到問題 2009-06-14 10:51 老劉

            你cout 命名空間都沒引用 前面還得加 #include <iostream>
            using namespace std;  回復  更多評論   

            <2007年9月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久免费99精品国产自在现线| 久久婷婷五月综合成人D啪| 久久久久亚洲AV无码专区网站| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久午夜电影网| 久久精品国产一区| 久久国产精品久久国产精品| 91久久精品91久久性色| 大伊人青草狠狠久久| 国产午夜久久影院| 国产视频久久| 一级A毛片免费观看久久精品| 伊人久久成人成综合网222| 久久精品中文字幕大胸| 久久亚洲国产精品成人AV秋霞| 久久国产精品无| 久久影院综合精品| 嫩草影院久久国产精品| 精品久久久久久无码免费| 久久国产综合精品五月天| 综合久久一区二区三区 | 色综合合久久天天综合绕视看| 精品人妻伦九区久久AAA片69| 性高湖久久久久久久久AAAAA| 国产亚洲美女精品久久久2020| 成人综合伊人五月婷久久| 久久久噜噜噜久久| 色偷偷偷久久伊人大杳蕉| 91精品国产综合久久四虎久久无码一级 | 9久久9久久精品| 色天使久久综合网天天 | 久久不射电影网| 午夜精品久久久久成人| 国产午夜精品久久久久免费视 | 亚洲国产精品人久久| 一本久久免费视频| 91精品无码久久久久久五月天| 久久热这里只有精品在线观看| 秋霞久久国产精品电影院| 色妞色综合久久夜夜|