Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add a library include path for NetBeans and gcc on Windows?

How to add a library include path for NetBeans and gcc on Windows?

Using:

  • NetBeans 7.1.2
  • MinGW (mingw-get-inst-20120426.exe)
  • gcc 4.7.0
like image 914
XP1 Avatar asked Jul 23 '12 23:07

XP1


1 Answers

For example, you want to add the directories in C:\Program Files (x86)\Example\1.0\include\ as the include paths.

First, set up code assistance:

  • NetBeans > Tools > Options > C/C++ > Code Assistance
    • C Compiler > Include Directories:
      • C:\Program Files (x86)\Example\1.0\include\shared
      • C:\Program Files (x86)\Example\1.0\include\other
      • C:\Program Files (x86)\Example\1.0\include
      • C:\MinGW\lib\gcc\mingw32\4.7.0\include
      • C:\MinGW\include
      • C:\MinGW\lib\gcc\mingw32\4.7.0\include-fixed
      • ...
    • C++ Compiler > Include Directories:
      • C:\Program Files (x86)\Example\1.0\include\shared
      • C:\Program Files (x86)\Example\1.0\include\other
      • C:\Program Files (x86)\Example\1.0\include
      • C:\MinGW\lib\gcc\mingw32\4.7.0\include\c++
      • C:\MinGW\lib\gcc\mingw32\4.7.0\include\c++\mingw32
      • C:\MinGW\lib\gcc\mingw32\4.7.0\include\c++\backward
      • C:\MinGW\lib\gcc\mingw32\4.7.0\include
      • C:\MinGW\include
      • C:\MinGW\lib\gcc\mingw32\4.7.0\include-fixed
      • ...
    • OK.

The C:\MinGW\... directories are examples only. Do not actually add them. NetBeans should have detected and added the MinGW directories automatically. If not, try resetting the settings:

  • NetBeans > Tools > Options > C/C++
    • Code Assistance
      • C Compiler > Reset Settings
      • C++ Compiler > Reset Settings
    • Build Tools
      • Restore Defaults

For instructions on automatic code assistance for existing sources, see:

  • C/C++ Projects Quick Start Tutorial:

    http://netbeans.org/kb/docs/cnd/quickstart.html#makefileprojects

  • How to Configure Code Assistance When Creating a Project from Existing Code:

    http://netbeans.org/kb/docs/cnd/configuring-code-assistance.html


Now, configure the project options:

  • Right click on project > Properties
    • Configuration: <All Configurations>
    • Build
      • C Compiler
        • General
          • Include Directories:
            • C:\Program Files (x86)\Example\1.0\include\shared
            • C:\Program Files (x86)\Example\1.0\include\other
            • C:\Program Files (x86)\Example\1.0\include
        • Compilation Line
          • Additional Options:
            • -std=c11 -g3 -pedantic -Wall -Wextra -O0
      • C++ Compiler
        • General
          • Include Directories:
            • C:\Program Files (x86)\Example\1.0\include\shared
            • C:\Program Files (x86)\Example\1.0\include\other
            • C:\Program Files (x86)\Example\1.0\include
        • Compilation Line
          • Additional Options:
            • -std=c++11 -g3 -pedantic -Wall -Wextra -O0
    • OK.

For adding command-line options by default for all projects, see:

  • NetBeans settings for GCC

Any spaces in the path should be automatically escaped. Any backward slashes should be replaced with forward slashes automatically.

For example, the "All options" textbox in "Additional Options" looks like this:

-std=c11 -g3 -pedantic -Wall -Wextra -O0 -g -I/C/Program\ Files\ \(x86\)/Example/1.0/include/shared -I/C/Program\ Files\ \(x86\)/Example/1.0/include/other -I/C/Program\ Files\ \(x86\)/Example/1.0/include

If this does not work, you may have to fix the path and add the includes manually in the additional options. For example, replace /C/ with C:/.

-std=c11 -g3 -pedantic -Wall -Wextra -O0 -g -IC:/Program\ Files\ \(x86\)/Example/1.0/include/shared -IC:/Program\ Files\ \(x86\)/Example/1.0/include/other -IC:/Program\ Files\ \(x86\)/Example/1.0/include

If you are using Cygwin make and if you try to clean or rebuild the project with colons in the command, you may get a *** multiple target patterns. Stop. error message. According to the answers from Multiple target patterns? and Very simple application fails with "multiple target patterns" from Eclipse, "make sees the : in the path and thinks it is another target definition, hence the error."

The workaround is to delete the generated build and dist folders every time before you build your project. However, this can be annoying, so you could try MinGW MSYS make instead (not to be confused with MinGW make, which is unsupported).

For MinGW and MSYS configuration instructions, see:

  • Configuring the NetBeans IDE for C/C++/Fortran:

    http://netbeans.org/community/releases/68/cpp-setup-instructions.html#mingw

For working with MinGW and Unicode, you should install the latest version of MinGW-w64. See:

  • wWinmain, Unicode, and Mingw
like image 156
XP1 Avatar answered Sep 27 '22 00:09

XP1