LINUX.ORG.RU

Не работает линкер.


0

0

Питаюсь собрать что либо, к примеру простое:
#include "iostream.h"
using namespace std;
int main(int argc, char **argv)
{

std::cout<<"Hello world\n";
return 0;
}

Во время линковки получаю:
[root@host ~]# gcc hello.cpp
In file included from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include /c++/3.4.6/backward/iostream.h:31,
from hello.cpp:1:
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/backward/b a ckward_warning.h:32:2: warning: #warning This file includes at least one depreca ted or antiquated header. Please consider using one of the 32 headers found in s ection 17.4.1.2 of the C++ standard. Examples include substituting the <X> heade r for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
/tmp/ccvOXFwQ.o(.text+0x19): In function `std::__verify_grouping(char const*, un signed long, std::basic_string<char, std::char_traits<char>, std::allocator<char > > const&)':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::a llocator<char> >::size() const'
/tmp/ccvOXFwQ.o(.text+0x70): In function `std::__verify_grouping(char const*, un signed long, std::basic_string<char, std::char_traits<char>, std::allocator<char > > const&)':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::a llocator<char> >::operator[](unsigned long) const'
/tmp/ccvOXFwQ.o(.text+0xb0): In function `std::__verify_grouping(char const*, un signed long, std::basic_string<char, std::char_traits<char>, std::allocator<char > > const&)':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::a llocator<char> >::operator[](unsigned long) const'
/tmp/ccvOXFwQ.o(.text+0xdd): In function `std::__verify_grouping(char const*, un signed long, std::basic_string<char, std::char_traits<char>, std::allocator<char > > const&)':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::a llocator<char> >::operator[](unsigned long) const'
/tmp/ccvOXFwQ.o(.text+0x125): In function `main':
: undefined reference to `std::cout'
/tmp/ccvOXFwQ.o(.text+0x12a): 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*)'
/tmp/ccvOXFwQ.o(.text+0x159): In function `__static_initialization_and_destructi on_0(int, int)':
: undefined reference to `std::ios_base::Init::Init()'
/tmp/ccvOXFwQ.o(.text+0x186): In function `__tcf_0':
: undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccvOXFwQ.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status

Собственно где я олень?

btw:

если вы сделали экспорт неимспейса, то вы можете его явно не указывать при вызове методов и классов, относящихся к нему.

т.е. using namespace std; подразумевает, что cout вы можете использовать без префикса std::

asgard
()

используй

gcc hello.cpp -lstdc++

gaa ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.