Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <3AA36BED.4E6DB8AF@ism.tu-berlin.de> Date: Mon, 05 Mar 2001 10:35:25 +0000 From: Georg Fusz Organization: Techn.University Berlin X-Mailer: Mozilla 4.76 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: Trace Young CC: cygwin AT sourceware DOT cygnus DOT com Subject: Re: call c++ from c References: Content-Type: multipart/mixed; boundary="------------F7EC0C52F531821D87DD33AF" --------------F7EC0C52F531821D87DD33AF Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Trace Young wrote: > > Hi, is anybody could help me to point out the problem: > > my problems is: it could not link while calling a c++ function in > cpp file from c function in c file with the main(). > > both c and cpp files can be compiler in VC++ in NT4.0, but not link > the link error message is "unresolved external symbol _cpp_function". > ( but I could do those in GUN g++ in Uuix ) > > following is my code > ------------------------------------------------------------------ > /*c_file.c*/ > #include "c_file.h" > int main(){ > cpp_function(); > return(0); > } > > ---------------------------------------------------------- > > /*c_file.h*/ > #ifndef __cplusplus > extern "C++" { > #endif > > #include "cpp_file.h" > > #ifndef __cplusplus > } > #endif > > Here is your mistake !!!!!!!!!!!!!!!!!!!!! #ifdef __cplusplus extern "C" { #endif void cpp_function( void ); #ifdef __cplusplus } #endif ------------------------------------------------------------ > > //cpp_file.cpp > #include "cpp_file.h" > #include > /* > foo::foo() { > i=0; > } > */ > void cpp_function(){ > foo f; > > f.see(); > cout<<"Hi, I am in Cpp file and called by C file\n"< } > > --------------------------------------------------------------------- > > //cpp_file.h > #include > > class foo { > public: > int i; > > foo() {i=0; } > ~foo() {} > > void see() { > cout << "--------------I am inside class ------------" << endl; > } > > }; > > void cpp_function(); > ------------------------------------------------------------------------------------ > > Thank for any help. > > Trace > > -- > Want to unsubscribe from this list? > Check out: http://cygwin.com/ml/#unsubscribe-simple -- Georg Fusz Technische Universitaet Berlin, Germany Fon: Uni.: +49 30 314 26 884 privat: +49 30 815 30 32 Handy: +49 173 20 10 696 Homepage: http://www.cadlab.tu-berlin.de/~fusz/ --------------F7EC0C52F531821D87DD33AF Content-Type: application/x-zip; name="mixed.zip" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="mixed.zip" UEsDBBQAAAAIAHpSZSrff0oswAAAACABAAAGAAAAZm9vLmNjlY7NigIxEITvgbxDMXpQcCeJ 4mUMexFB32FBYn6YQEyCMxHdxXdfM7c9bp+Kr7u6ijHMT6aDS6nVenWHaAXWnAvGN4xvIXgn Np3YwpXhG4dHxpwSSmY+6lCMRdNbZeztrHXbN3820qdhvFl1/az4nryBzvnsStSjT3GBCS0p +aEENR9uVy8Bxj7+PdU3/WkHaxfLXdU6lVHK5uhXOEFd4SP2OcP5YKHiu44KwRpcnthP8Cs2 UrpQhv5tf9UulPwCUEsDBBQAAAAIALJTZSp5XyNthAAAAKwAAAAKAAAAaGVhZGVyX2MuaG2M vQrCMBhF90De4VI7KEjzJdIljuLgUwTJDw1IGtqmFMV3t3Vy8MJZLocjBOqb0+j83fnB2KY7 zpCNgiKSgk6CWkjSijQphDI+cV0yas4428XgfIAxNj/KuMGZXyY/JFSXCq/V8MnFsLlzHx1s ziaUZKfYpz2+1+HMGdb9r71/E5x9AFBLAwQUAAAACACJUmUqvbtFhIMAAACcAAAABgAAAG1h aW4uYyWNwQrCMBiD74W9Q5g7bCDt38kQ6tmDTzFG27GCdmW2QxTf3dUlkMMXSIRAdTMKj8F5 ro8rJG/REklBJ0EdJKmWlDxjTM83rq+AqmDZB+f1PRmLcrKDsUuv+VTmwvn4X6uxzs6gKdgn Y2zSIfRj8jq62dfNZYd7LjamxYM2+N0PCvYDUEsDBBQAAAAIAIJTZSoSkSYRwAAAABgBAAAI AAAATWFrZWZpbGVdjj0LwjAQhmcL/Q8HZmhF0kQRMeAkog7ubhKba4nmo7RWir/eVEXFJVze 5567GwLZKQF7ecFCGxzfgFMOE8Z4xqYZmwFngi/EdA5F29xh3VWvgsRRHGmXm1YhKJFtvcVs 41pq5aVHVe3Lo5MWYQl73aGi2GEP/OmM+bUJsZXaUQ+F9+HtEUk+VgoCSPLuTeNoQJLV4ZCG rER3NKowsnznX+f3pI8sqF9S9WS5QelEkGoLo7BzRFX4NNdaV/A/5wFQSwMEFAAAAAgAhVJl Kk6YcjigAAAACAEAAAsAAABoZWFkZXJfY2MuaE2OsQ6DMAxEdyT+wUoXGIDOhXbvV6A0MYql QBCBLoh+e2PSCt5kn0++qyo1jm1HFkuTJhcalF00QkPOzxPKvjSPNDkdhEGpcWpVaQQflJXe Q+dcmqy8w7i8LKlbmAI0zED1rgeCK8thpfu1ho2lKH9++sa+KL0dafCIWR53Zj1GRrllhqYB Ufx5guxDoqdQM9YqTgg246BtffzZE7e93xdQSwECFAAUAAAACAB6UmUq339KLMAAAAAgAQAA BgAAAAAAAAABACEAJIEAAAAAZm9vLmNjUEsBAhQAFAAAAAgAslNlKnlfI22EAAAArAAAAAoA AAAAAAAAAQAhACSB5AAAAGhlYWRlcl9jLmhQSwECFAAUAAAACACJUmUqvbtFhIMAAACcAAAA BgAAAAAAAAABACEAJIGQAQAAbWFpbi5jUEsBAhQAFAAAAAgAglNlKhKRJhHAAAAAGAEAAAgA AAAAAAAAAQAgALaBNwIAAE1ha2VmaWxlUEsBAhQAFAAAAAgAhVJlKk6YcjigAAAACAEAAAsA AAAAAAAAAQAhACSBHQMAAGhlYWRlcl9jYy5oUEsFBgAAAAAFAAUADwEAAOYDAAAAAA== --------------F7EC0C52F531821D87DD33AF Content-Type: text/plain; charset=us-ascii -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple --------------F7EC0C52F531821D87DD33AF--