Netbeans 8.1(用于 C/C++)找不到我的编译器(gcc-6.0.0 开发版)

Posted

技术标签:

【中文标题】Netbeans 8.1(用于 C/C++)找不到我的编译器(gcc-6.0.0 开发版)【英文标题】:Netbeans 8.1 (for C/C++) cannot find my compiler (gcc-6.0.0 dev version) 【发布时间】:2016-03-12 13:27:21 【问题描述】:

我对 mac os x 下的 C/C++ IDE 完全陌生,因此对于 netbeans。我在 max os x 10.10.5 下下载了 C/C++ dmg。

我已经从源代码构建了gcc-6.0.0(开发版),它在命令行上就像一个魅力。我打算将它与 netbeans 一起使用,因此在 netbeans 偏好中,我创建了一个名为“gcc-6.0.0”的新“工具集合”,我从安装 netbeans 后已经可用的两个默认值(称为 GNU 和 clang)中得到启发。我填写如下:

基本目录:/usr/local/GNU/gcc-6.0.0 C 编译器:/usr/local/GNU/gcc-6.0.0/bin/gcc-6.0.0 C++ 编译器:/usr/local/GNU/gcc-6.0.0/bin/g++-6.0.0 Fortran 编译器:/usr/local/GNU/gcc-6.0.0/bin/gfortran-6.0.0 汇编器:/usr/bin/as 发出命令:/usr/local/GNU/make-4.1/bin/make-4.1 调试器命令:我把它留空了 QMake 命令:我把它留空了 CMake 命令:/usr/local/lvm/cmake-3.3.2/bin/cmake

请注意,我的 gcc 命令(gcc、g++ 和 gfortran 确实有前缀,这不是错误。)由于我从源代码构建了 make 和 Cmake,我也填充了它们各自二进制文件的路径。

请注意,在添加新工具集合窗口中,对于“基本目录”,我输入了:/usr/local/GNU/gcc-6.0.0 并被告知(通过新工具集合窗口底部的红色消息)“没有编译器集合在目录中找到 /usr/local/GNU/gcc-6.0.0'...如果我把/usr/local/GNU/gcc-6.0.0/bin 改为...

最后,我选择了一个欢迎项目模板(为此我选择了新创建的工具集),然后我构建了它,并得到了这个控制台输出:

cd '/Users/XXXXXXX/Documents/Welcome_1' 
/usr/bin/make -f Makefile CONF=Debug 
"/Applications/Xcode.app/Contents/Developer/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf 
"/Applications/Xcode.app/Contents/Developer/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU_1-MacOSX/tmp14 
mkdir -p build/Debug/GNU_1-MacOSX 
rm -f "build/Debug/GNU_1-MacOSX/welcome.o.d" 
g++-6.0.0 -c -g -MMD -MP -MF "build/Debug/GNU_1-MacOSX/welcome.o.d" -o build/Debug/GNU_1-MacOSX/welcome.o welcome.cc 
/bin/sh: g++-6.0.0: command not found 
make[2]: *** [build/Debug/GNU_1-MacOSX/welcome.o] Error 127 
make[1]: *** [.build-conf] Error 2 
make: *** [.build-impl] Error 2 

BUILD FAILED (exit value 2, total time: 221ms) 

当我在命令行上没有类似这样的发布时,/bin/sh: g++-6.0.0: command not found 怎么会出现,并且当我在新的工具集合窗口中给出g++-6.0.0 的路径时?

我怎样才能实现我想要做的事情,即使用我的 gcc-6.0.0 gcc/g++ 编译器和 netbeans ?

提前谢谢!

【问题讨论】:

如果您仔细阅读,您提供的输出是通过运行/usr/bin/make 然后/Applications/Xcode.app/Contents/Developer/usr/bin/make 然后g++-6.0.0 获得的,没有路径。结论:您所做的任何路径设置都无效。将 gcc 的 bin 目录添加到 $PATH 和/或符号链接可执行文件到已经存在的目录。您可能希望首先使其在终端中工作,然后解决 Netbeans 的怪癖。另见:Compiling GCC 5 on OS X g++-6.0.0 的目录 (/usr/local/GNU/gcc-6.0.0) 已添加到路径中,因为我总是使用 g++-6.0.0 命令(使用我自己的 makefile)...通过命令行。将“符号链接可执行文件添加到已经存在的目录”是什么意思?您是否建议我将符号链接添加到项目文件夹中所有需要的命令行可执行文件?因为,如果是这样,这与将编译器命令行可执行文件的所有路径告诉 netbeans 一次的想法完全相反...... 至于您发布的链接,谢谢,但正如我已经在我的问题上写的那样:“我已经从源代码构建了gcc-6.0.0(开发版),它在命令行上就像一个魅力” .这不是编译器构建问题。这是一个“netbeans 查找我的编译器的命令行可执行文件”的问题。 好的,将/usr/local/GNU/gcc-6.0.0/bin 放在基目录而不是/usr/local/GNU/gcc-6.0.0 让我很开心,即使我仍然有“在目录中找不到编译器集”。案件结案。 【参考方案1】:

/usr/local/GNU/gcc-6.0.0/bin 用于“基本目录”而不是/usr/local/GNU/gcc-6.0.0 让我很开心,即使“新工具集合”窗口中仍然存在“目录中未找到编译器集”红色消息。

【讨论】:

【参考方案2】:

我也遇到了同样的问题,我可能已经找到了一种可以永久修复的解决方法。尝试从您的 Mac 终端打开 NetBeans,您应该能够编译 C\C++ 应用程序。步骤如下:

    按住 cmd 键 + 空格键打开终端以获取 Spotlight Search,然后键入“终端”并按 Return 键。

    例如,在终端中,键入以下命令以打开您的 .c 文件。 (这里你在终端中连接两个命令):

打开 /Applications/NetBeans/NetBeans\ 8.2.app/ && /Applications/NetBeans/NetBeans\ 8.2.app/Contents/MacOS/netbeans --open /Users/macbook/NetBeansProjects/CprogrammingChap1/main.c

对于“/Users/macbook/NetBeansProjects/CprogrammingChap1/main.c”,您可以将其替换为您要打开的文件。

    在 Netbeans 的“运行”标题下选择“编译文件”,该文件应该会成功编译。

    我发现当您关闭 NetBeans 并从 GUI 重新打开它(只需双击图标)时,C/C++ 文件可以正常编译。

【讨论】:

以上是关于Netbeans 8.1(用于 C/C++)找不到我的编译器(gcc-6.0.0 开发版)的主要内容,如果未能解决你的问题,请参考以下文章

Android ClassNotFoundException:在路径上找不到类:Dexpathlist

Netbeans安装找不到JDK [关闭]

NetBeans:无法启动 Tomcat(“系统找不到指定的文件”)

Netbeans 中的“make [2]:g++:找不到命令”

将Java小程序项目导入netbeans不起作用,Netbeans即使手动设置也拒绝识别甚至找不到主类

Java SE 模块从 Netbeans 6.5.1 到 7.0 的转换