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

Posted

技术标签:

【中文标题】如何在 Windows 上为 NetBeans 和 gcc 添加库包含路径?【英文标题】:How to add a library include path for NetBeans and gcc on Windows? 【发布时间】:2012-07-23 23:13:12 【问题描述】:

使用:

NetBeans 7.1.2 MinGW (mingw-get-inst-20120426.exe) gcc 4.7.0

【问题讨论】:

【参考方案1】:

例如,您想将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++ 项目快速入门教程:

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

从现有代码创建项目时如何配置代码辅助:

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


现在,配置项目选项:

右键单击项目>属性 配置: 构建 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 好的。

要为所有项目默认添加命令行选项,请参阅:

NetBeans settings for GCC

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

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

-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(不要与 MinGW make 混淆,即 unsupported)。

MinGW和MSYS配置说明见:

为 C/C++/Fortran 配置 NetBeans IDE:

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

要使用 MinGW 和 Unicode,您应该安装最新版本的 MinGW-w64。见:

wWinmain, Unicode, and Mingw

【讨论】:

@JesseGood,-std=c11 怎么样?那么,您还考虑了哪些其他问题?仅仅因为信息存在于其他地方并不意味着它不应该存在于 Stack Overflow 上。我还添加了有关 NetBeans 网站上可能不存在的 make 问题的更多信息。 关于代码辅助,netbeans.org/kb/docs/cnd/quickstart.html 和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 的位置。 @JesseGood C:\MinGW\... 目录只是为了展示它在我的计算机上的样子。当然,如果它们已经存在,添加它们将是荒谬的。我已经添加了您对编译器标志的建议。 C:\Program Files (x86)\Example\1.0\include 中的空格应自动转义。从“所有选项”文本框中可以看到:C:/Program\ Files\ \(x86\)/Example/1.0/include。一些 SDK 和头文件安装在 C:\Program Files (x86) 最后评论:看起来好多了(删除了反对票)。此外,仅使用正斜杠 / 开始可能会更好地避免出现问题。希望有人觉得这很有用(我会删除我的旧 cmets,因为它们只是占用空间)。

以上是关于如何在 Windows 上为 NetBeans 和 gcc 添加库包含路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上为旧 R 匹配 Rcpp 和 RcppArmadillo 的版本?

如何在 Windows 上为我的操作系统编译和链接 C 和 ASM

如何构建 FLTK 以与 Netbeans (Windows) 一起使用

如何在 Windows64 上为 Python 3.5 安装 pydotplus

如何在 Windows 上为 WebStorm 或 IntelliJ IDEA 使用 Mac OSX 键盘映射?

如何在 Windows 上为 apache 2.4 和 python 3.4 安装 mod_wsgi?