Are there any differences in the linking process between gcc and g++?
I have a big C project and I just switched part of the code to C++. The code isn’t using std C++ library yet, so -llibstdc++ isn’t needed for now.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
The main difference is that (assuming the files are detected as C++) g++ sets up the flags needed for linking with the C++ standard library. It may also set up exception handling. I wouldn’t rely on the fact that just because your application doesn’t use the standard library that it isn’t needed when compiled as C++ (for example the default exception handler).
EDIT: As pointed out in comments you’ll have trouble with any constructors (that do work) for static objects as well as not getting virtual function tables (so if you’re using those features of C++ you still need to link that library).
EDIT2: Unless you’re using C99 specific code in your C project I would actually just switch to compiling the whole thing as C++ as the first step in your migration process.