Building DLLs on C++ version code failed, but okay on C version code.

Bengt-Arne Fjellner Bengt-Arne.Fjellner@ltu.se
Sun Jul 4 11:10:00 GMT 2010


On 2010-07-04 12:27 PM, kenny@ca wrote:
> Forgot to attach error information.
>
> hello.o:hello.cpp:(.text+0xd): undefined reference to
> `std::basic_string<char, std::char_traits<char>, std::allocator<char>
>    
>> ::size() const'
>>      
> hello.o:hello.cpp:(.text+0x60): undefined reference to
> `std::basic_string<char, std::char_traits<char>, std::allocator<char>
>    
>> ::operator[](unsigned int) const'
>>      
> hello.o:hello.cpp:(.text+0x9f): undefined reference to
> `std::basic_string<char, std::char_traits<char>, std::allocator<char>
>    
>> ::operator[](unsigned int) const'
>>      
> hello.o:hello.cpp:(.text+0xce): undefined reference to
> `std::basic_string<char, std::char_traits<char>, std::allocator<char>
>    
>> ::operator[](unsigned int) const'
>>      
> hello.o:hello.cpp:(.text+0x111): undefined reference to `std::cout'
> hello.o:hello.cpp:(.text+0x116): 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*)'
>>      
> hello.o:hello.cpp:(.text+0x11e): 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>
>    
>> &)'
>>      
> hello.o:hello.cpp:(.text+0x126): 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>  >&))'
> hello.o:hello.cpp:(.text+0x149): undefined reference to
> `std::ios_base::Init::Init()'
> hello.o:hello.cpp:(.text+0x164): undefined reference to
> `std::ios_base::Init::~Init()'
> collect2: ld returned 1 exit status
>
>
> kenny@ca wrote:
>    
>> Hi there,
>>
>> I wrote a file, hello.c. It has only one function: print a message like
>> "hello!".
>> ##### hello.c #########
>> #include<stdio.h>
>> void hello() { printf( "Hello.\n" ) ; }
>>
>> $gcc -c hello.c
>> $gcc -shared -o hello.dll hello.o
>>
>> I successufully built it as DLL, hello.dll.
>>
>> Then, I rewrote it in c++.
>> ##### hello.cpp #######
>> #include<iostream>
>> using namespace std ;
>> void hello() {cout<<  "Hello."<<  endl ;}
>>
>> Then, I used the commands above to built DLL, but it failed. Why did it
>> fail?
>>
>>
>>      
>    
Use g++ to compile and link c++ code


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list