问题
When I select console project to start with, it lets you to select C or C++. But once its created, I can't figure out how to change it. Plus, when you create a Win32 GUI application, it doesn't give you the option at all and its default is C++.
Where can I change to C? I have been looking in all the project settings for ages. Renaming my file from .cpp
to .c
doesn't seem to do anything, it compiles the file as C++. I know that without the IDE, you just change your executable from g++
to gcc
, but how do I set this for the current project in CodeBlocks?
回答1:
The only tangible difference between selecting C vs C++ when you create a project is which compiler is invoked for the translation units during a build. Codeblocks currently does not provide a way to directly change this after project creation. That is to say you would have to change each source file one at a time to get what you want.
Here's what you can do to change it:
Open the properties window for a source you want to change. You can get to it by right-click source file->properties.
- Goto the Advanced tab.
Find the Compiler variable field and change it from CPP to CC.
- Click Ok.
- Repeat this for each source file that needs to be changed.
Now if your existing project contains a lot of source files you can do this quicker by manually editing the codeblocks cbp project file (it's just an xml file). The nodes you want to search for and replace will look something like this:
<CodeBlocks_project_file>
//...
<Project>
//...
<Unit filename="source1.cpp">
<Option compilerVar="CPP" /> //change CPP to CC here
</Unit>
<Unit filename="source2.cpp">
<Option compilerVar="CPP" /> // and here
</Unit>
<Unit filename="source3.cpp">
<Option compilerVar="CPP" /> // and here then save.
</Unit>
//...
</Project>
</CodeBlocks_project_file>
After the changes open your project in C::B and confirm it's being compiled as a C source file. You should see the build log invoking gcc now instead of g++.
来源:https://stackoverflow.com/questions/4695896/codeblocks-gcc-change-project-language-c-and-c