说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

第一次在LINUX下使用GCC....

编辑:说三道四文库 发布时间:2018-02-24 05:57
HTML文档下载 WORD文档下载 PDF文档下载
以前一直在WINDOWS下开发程序.
第一次在LINUX下使用GCC.找个段程序编译之.
然而,出现错误一大堆,请大家看看哪里有问题?
另外,此程序在VC6编译通过.

错误信息如下:
//////////////////////////////////////////////////////////////////////
[user1@localhost cpp]$ gcc test.cpp
/tmp/ccxULBq5.o(.text+0x1c): In function `get()':
: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream[in-charge](char const*, std::_Ios_Openmode)'
/tmp/ccxULBq5.o(.text+0x33): In function `get()':
: undefined reference to `std::basic_ios<char, std::char_traits<char> >::good()
const'
/tmp/ccxULBq5.o(.text+0x59): In function `get()':
: undefined reference to `std::basic_istream<char, std::char_traints<char> >::get(char&)'
/tmp/ccxULBq5.o(.text+0x6c): In function `get()':
: undefined reference to `std::cout'
/tmp/ccxULBq5.o(.text+0x71): In function `get()':
: 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)'
/tmp/ccxULBq5.o(.text+0x85): In function `get()':
: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::close()'
/tmp/ccxULBq5.o(.text+0xa5): In function `get()':
: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream [in-charge]()'
/tmp/ccxULBq5.o(.text+0xcb): In function `get()':
: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream [in-charge]()'
/tmp/ccxULBq5.o(.text+0xf5): In function `getline()':
: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream[in-charge](char const*, std::_Ios_Openmode)'
/tmp/ccxULBq5.o(.text+0x10c): In function `getline()':
: undefined reference to `std::basic_ios<char, std::char_traits<char> >::good()
const'
/tmp/ccxULBq5.o(.text+0x147): In function `getline()':
: undefined reference to `std::basic_istream<char, std::char_traints<char> >::getline(char*, int)'
/tmp/ccxULBq5.o(.text+0x152): In function `getline()':
: 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/ccxULBq5.o(.text+0x161): In function `getline()':
: undefined reference to `std::cout'
/tmp/ccxULBq5.o(.text+0x166): In function `getline()':
: 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*)'
/tmp/ccxULBq5.o(.text+0x16f): In function `getline()':
: 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/ccxULBq5.o(.text+0x183): In function `getline()':
: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::close()'
/tmp/ccxULBq5.o(.text+0x1a3): In function `getline()':
: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream [in-charge]()'
/tmp/ccxULBq5.o(.text+0x1c9): In function `getline()':
: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream [in-charge]()'
/tmp/ccxULBq5.o(.text+0x218): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `std::ios_base::Init::Init[in-charge]()'
/tmp/ccxULBq5.o(.text+0x247): In function `__tcf_0':
: undefined reference to `std::ios_base::Init::~Init [in-charge]()'
/tmp/ccxULBq5.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status


程序如下:
///////////////////////////////////////////////////
#include <iostream>
#include <fstream>
using namespace std;

#ifdef WIN32
#define TEST_FILE "c:\\tmp\\test.txt"
#else
#define TEST_FILE "/tmp/test.txt"
#endif

void get()
{
    //ifstream ifs;
    //ifs.open(TEST_FILE);
    ifstream ifs(TEST_FILE);

    //while (ifs.good()) cout << (char) ifs.get();//simple
    while (ifs.good()) {
        
        char ch = 0;
        //ch = ifs.get();
        ifs.get(ch);

        cout << ch;
    }

    ifs.close();
}

void getline()
{
    //ifstream ifs;
    //ifs.open(TEST_FILE);
    ifstream ifs(TEST_FILE);

    while (ifs.good())
    {
        char buf[1024] = {0};
        ifs.getline(buf, sizeof(buf));

        cout << buf << endl;
    }

    ifs.close();
}

int main(int argc, char* argv[])

    get();
    getline();
    return 0;
}
gcc -std
g++ -o test test.cpp
谢谢!对了.
另外,问一下:在linux环境下,有象VC6那样的集成开发环境吗?
通常都是怎样的开发环境?
不会是这样的命令行方式吧?
Kdevelop is similer to VC, and it with qt librarys.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘