如何在Windows上为NetBeans和gcc添加库包含路径?

8

如何在Windows上为NetBeans和gcc添加库包含路径?

使用:

  • NetBeans 7.1.2
  • MinGW (mingw-get-inst-20120426.exe)
  • gcc 4.7.0
1个回答

13
例如,您想将目录C:\Program Files (x86)\Example\1.0\include\添加为包含路径。
首先,设置代码辅助:
  • NetBeans > 工具 > 选项 > C/C++ > 代码辅助
    • C编译器 > 包含目录:
      • 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++编译器 > 包含目录:
      • 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
      • ...
    • 确定.
"

C:\MinGW\...目录仅为示例。请不要实际添加它们。NetBeans应该已自动检测并添加了MinGW目录。如果没有,请尝试重置设置:

  • NetBeans > 工具 > 选项 > C/C++
    • 代码辅助
      • C编译器 > 重置设置
      • C++编译器 > 重置设置
    • 构建工具
      • 恢复默认值
"

有关现有源自动代码辅助的说明,请参见:


现在,配置项目选项:
  • 右键单击项目 > 属性
    • 配置: <所有配置>
    • 构建
      • C编译器
        • 常规
          • 包含目录:
            • 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
        • 编译行
          • 附加选项:
            • -std=c11 -g3 -pedantic -Wall -Wextra -O0
      • C++编译器
        • 常规
          • 包含目录:
            • 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
        • 编译行
          • 附加选项:
            • -std=c++11 -g3 -pedantic -Wall -Wextra -O0
    • 确定。

如需为所有项目默认添加命令行选项,请参见:

路径中的任何空格都应自动转义。任何反斜杠都应自动替换为正斜杠。

例如,“附加选项”中的“所有选项”文本框如下所示:

-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

如果这不起作用,您可能需要修复路径并在附加选项中手动添加包含文件。例如,将/C/替换为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

如果你使用Cygwin的make,并且在命令中包含冒号来清理或重建项目,可能会收到*** multiple target patterns. Stop.错误消息。根据Multiple target patterns?Very simple application fails with "multiple target patterns" from Eclipse的答案,"make看到路径中的:,认为它是另一个目标定义,因此出现了错误。"

解决方法是在每次构建项目之前删除生成的builddist文件夹。但是,这可能很烦人,所以你可以尝试使用MinGW MSYS的make(不要与unsupported的MinGW make混淆)。

有关MinGW和MSYS配置说明,请参见:

若要使用MinGW和Unicode,请安装最新版本的MinGW-w64。请参见:


@JesseGood,-std=c11 怎么样?那你还想到了哪些其他问题呢?仅仅因为信息在其他地方存在并不意味着它不应该存在于 Stack Overflow 上。我还添加了更多关于 make 问题的信息,这些信息可能在 NetBeans 网站上不存在。 - XP1
在代码协助方面,http://netbeans.org/kb/docs/cnd/quickstart.html 和 http://netbeans.org/kb/docs/cnd/configuring-code-assistance.html 均指出可以从现有源自动配置代码协助。然而,如果我创建一个新的 C 项目,在顶部键入 #include <example.h> 并尝试编译,它会显示 fatal error: example.h: No such file or directory。这不是自动的。它不会神奇地知道 example.h 的位置。我必须手动配置 example.h 的位置。 - XP1
@JesseGood C:\MinGW\... 目录只是为了展示在我的电脑上它看起来是什么样子。如果它们已经存在,添加它们当然是荒谬的。我已经采纳了你关于编译器标志的建议。 - XP1
C:\Program Files (x86)\Example\1.0\include 中的空格应该自动转义。正如您从“所有选项”文本框中看到的:C:/Program\ Files\ \(x86\)/Example/1.0/include。一些 SDK 和头文件安装在 C:\Program Files (x86) 中。 - XP1
这个解决方案不起作用。仍然抱怨包含的文件不存在。 - Dissident Rage
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接