Code::Blocks Forums
User forums => Help => Topic started by: Wolf on July 17, 2008, 09:58:10 pm
-
Hello,
I noticed that even if I want to make a strict C project, when I insert a new file and make it a header, it defines it as a C++ header. Whenever I add files, if it doesn't know which language, it defaults to C++. Is it possible to change this behavior to make it default to C? If not, could an option to do so be added? It is annoying to always have to go to the file properties and change the compiler variable from CPP to CC. At some point, I thought I messed up something as it would allow me to use namespaces in a .c file. =P
What I'd prefer is to let the compiler decide how to compile the file according to its extension, and if I want to define a different behavior, then I can define this special compiler variable.
If I rename a .cpp file to a .c file, it still considers it C++. Which could be okay, but I believe it would be logical to care about the file extension and use the compiler variable for exceptions.
Thanks.
-- Wolf --
-
Please give us some info?
Compiler?
Compiler Version?
Operating System?
Code::Blocks version or SVN?
Tim S
PS: Please post in the user forums in the future; instead of the "Developer forums (C::B DEVELOPMENT STRICTLY!) " forums.
-
Compiler?
Compiler Version?
This is related only to Code::Blocks projects.
Operating System?
Windows XP
Code::Blocks version or SVN?
8.02
PS: Please post in the user forums in the future; instead of the "Developer forums (C::B DEVELOPMENT STRICTLY!) " forums.
Yeah, sorry about that, the user forums were collapsed and my sight is playing tricks on me these days. Health ain't too great.
Please give us some info?
Whenever I add a header file to a project, Code::Blocks sets its compiler flags to CPP, even in a strict C project.
Code::Blocks considers files as C++ by default, unless the extension says otherwise, instead of letting the compiler decide of the kind of file. Even adding a ".asm" file to a project sets its compiler flags to CPP. And you can't blank out the compiler flags, as it will reset them to CPP. In other words, I have to manually change it for every header file I add to my project or whenever I rename files.
I think it would be better if C::B would let the compiler decide the kind of file (C or CPP) and set it only for exceptions. Or maybe allow the users to change the default behavior.
-- Wolf --
-
I was able to duplicate what I think the problem is on both 8.02 and current SVN 5170.
Steps to duplicate are
1. File -> New -> Project
2. Pick "Console Application"
3. Select C language
4. Create an header file with .h extension
5. Use "Add Files" to add header
6. Look at the "Compiler Variable" it is CPP when CC makes more sense.
Right click on header file;
Properties
advanced Tab
Tim S
PS, The problem is to deep in Code::Blocks for me. Looks like an SDK patch is needed to the cbProject::AddFile. You might try submitting it as an bug. Please include directions to duplicate the problem.