Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NetBeans settings for GCC

When I click on project properties I can set Warning level (More Warnings) and Command Line -> Additional Options (-std=c99). But I want that all my C project have that kind of options by default without manually setting them everytime I create new project.

screenshot

like image 506
gameboy Avatar asked Nov 06 '10 16:11

gameboy


People also ask

Does NetBeans work with C?

NetBeans C/C support lets you create C and C Application and Library projects with generated makefiles, as well as C and C++ projects with existing sources. You can build, run, and debug your project on the local host (the system from which you started the IDE) or on a remote host running a UNIX® operating system.

Does NetBeans have a compiler?

Unlike Eclipse (which uses its own Eclipse Java Compiler), Netbeans actually uses the internal API of javac for compiling, syntax highlighting, and error detection.

How add C++ to NetBeans?

Install the C/C++ plugin in NetBeans. In NetBeans, go to Tools → Plugins. Then in Available Plugins, in the C/C++ category, check the box for C/C++, then click Install to start the installation.


2 Answers

For each project, the configuration properties are saved in the \nbproject\configurations.xml (%UserProfile%\Documents\NetBeansProjects\ProjectName\nbproject\configurations.xml) file.

You could share the configurations.xml file between projects so that you won't have to change and apply every setting.


You could create a default project and configure it however you like. Instead of creating a new project, you could copy it, and name it something else.


If you want the toolchain properties to apply to every project, you will need to manually modify your toolchain definition or create a new one.

  • Generate shadow copies of the tool collection descriptors:

    • NetBeans > File > Exit.
    • Gain write access to modify %ProgramFiles%\NetBeans x\etc\netbeans.conf:
      • Start > Run > %ProgramFiles%\NetBeans x\.
      • Right click on the etc folder > Properties > Security > Edit... > Under "Group and user names", select the "Users" group > Under "Permissions for Users", for "Full control", enable "Allow" > OK > OK.
    • Open %ProgramFiles%\NetBeans x\etc\netbeans.conf in a text editor that can handle the newlines.

      • On the line starting with netbeans_default_options, add -J-Dcnd.toolchain.personality.create_shadow=true to the string of values.

        • For example, the line may now look like:

          netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.zip.disableMemoryMapping=true -J-Dcnd.toolchain.personality.create_shadow=true"

      • Save the file.
      • If you had imported settings from an older profile that had generated shadow copies previously to a 7.2+ profile, then you must open the toolchain.properties file in %Appdata%\NetBeans\x\config\Preferences\org\netbeans\modules\cnd\. In toolchain.properties, remove the line toolchain_shadow=true, and save.
        • If you do not do this step after upgrading and importing the NetBeans profile, NetBeans may not generate the shadow copies. Also, you may not be able to use any build tools, and you may get a "No compiler sets were found in the directory ..." error when you try to configure the C/C++ build tools.
      • Open and then close NetBeans.
      • On the line starting with netbeans_default_options, remove -J-Dcnd.toolchain.personality.create_shadow=true from the string of values. In other words, undo the edit to restore the file back to its original state.
      • Save the file.
  • Modify or create the toolchain definition:

    • Start > Run > %Appdata%\NetBeans\x\config\CND\ToolChain\ (7.2+) or %UserProfile%\.netbeans\x\config\CND\ToolChain\ (7.1.2-).
    • Locate the corresponding XML file for your toolchain.
      • For example, the MinGW toolchain definition file is MinGW.xml.
    • Open the XML file in a text editor that can handle the newlines.
    • Within the c element, there is a development_mode element containing the different development mode option elements. You can modify the flags for a particular development mode by modifying the flags attribute.

      • For example, when you add the -std=c11 -g3 -pedantic -Wall -Wextra -O0 flags, the attributes may look like this:

        <development_mode>
            <fast_build flags="-std=c11 -g3 -pedantic -Wall -Wextra -O0"/>
            <debug default="true" flags="-std=c11 -g3 -pedantic -Wall -Wextra -O0 -g"/>
            <performance_debug flags="-std=c11 -g3 -pedantic -Wall -Wextra -O0 -g -O"/>
            <test_coverage flags="-std=c11 -g3 -pedantic -Wall -Wextra -O0 -g"/>
            <diagnosable_release flags="-std=c11 -g3 -pedantic -Wall -Wextra -O0 -g -O2"/>
            <release flags="-std=c11 -g3 -pedantic -Wall -Wextra -O0 -O2"/>
            <performance_release flags="-std=c11 -g3 -pedantic -Wall -Wextra -O0 -O3"/>
        </development_mode>
        
    • Within the cpp element, there is a development_mode element containing the different development mode option elements. You can modify the flags for a particular development mode by modifying the flags attribute.

      • For example, when you add the -std=c++11 -g3 -pedantic -Wall -Wextra -O0 flags, the attributes may look like this:

        <development_mode>
            <fast_build flags="-std=c++11 -g3 -pedantic -Wall -Wextra -O0"/>
            <debug default="true" flags="-std=c++11 -g3 -pedantic -Wall -Wextra -O0 -g"/>
            <performance_debug flags="-std=c++11 -g3 -pedantic -Wall -Wextra -O0 -g -O"/>
            <test_coverage flags="-std=c++11 -g3 -pedantic -Wall -Wextra -O0 -g"/>
            <diagnosable_release flags="-std=c++11 -g3 -pedantic -Wall -Wextra -O0 -g -O2"/>
            <release flags="-std=c++11 -g3 -pedantic -Wall -Wextra -O0 -O2"/>
            <performance_release flags="-std=c++11 -g3 -pedantic -Wall -Wextra -O0 -O3"/>
        </development_mode>
        
    • Save the file.

For finding the netbeans.conf configuration file on different platforms, see:

  • How do I make my custom startup parameters permanent?

    http://wiki.netbeans.org/FaqNetbeansConf

For finding the user directories on different platforms, see:

  • What is a userdir and where can I find it? What is a cachedir and where can I find it?

    http://wiki.netbeans.org/FaqWhatIsUserdir

For information on tool collection descriptors, see:

  • Using the C/C++ Tool Collection Descriptor - NetBeans IDE 6.9 Tutorial:

    http://netbeans.org/kb/69/cnd/toolchain.html

like image 125
XP1 Avatar answered Oct 07 '22 22:10

XP1


First download and install Code::Blocks IDE from Code::Blocks IDE Downlowd and MSYS 1.0.11

All setting will automatically configured, but you have to select "make" command from

C:\msys\1.0\bin\make.exe

enter image description here

like image 27
Chandan Pasunoori Avatar answered Oct 07 '22 21:10

Chandan Pasunoori