为什么CodeBlocks(13.12)找不到C:\ MinGW \ include?

时间:2015-02-18 14:42:17

标签: c++ windows mingw settings codeblocks

我正在尝试使用代码块构建我的c ++项目,但是我收到了这个错误:

ld.exe找不到C:\ MinGW \ include permission denied

我最初安装手动mingw以运行eclipse的c ++版本,而不是我决定转移到codeblocks。由于它没有运行,我删除了mingw的第一个版本(因为代码块已经安装了它,我认为它存在冲突),然后卸载并重新安装了代码块(我重新启动了PC也只是为了确定)。它仍然给了我一个错误,所以我在线搜索错误,发现codeblocks编译器不喜欢路径中的空格和括号(带有它自己的mingw文件夹的codeblocks安装在c:\ programmi(x86)中,所以你可以看到为什么它不工作)并且建议将mingw移动到c:\并将编码器中与codeblocks相关联的路径选项设置为新路径(在stackoverflow上找到建议)。现在它给了我上面写的错误。 P.S:
我尝试在管理模式下打开代码块,但它仍然给出了错误。以下是构建日志窗口向我显示的内容:mingw32-g ++。exe -o bin \ Debug \ TMIDIcustom.exe obj \ Debug \ tmidi.o obj \ Debug \ TMspeech.o obj \ Debug \ TMIDI.res C:\ MinGW \ include c:/ mingw / bin /../ lib / gcc / mingw32 / 4.7.1 /../../../../ mingw32 / bin / ld.exe:找不到C:\ MinGW \ include:权限否认collect2.exe:错误:ld返回1退出状态进程终止,状态为1(0分钟,1秒(s))1个错误,0个警告(0分钟,1秒) (一个或多个))。 谁能告诉我发生了什么事?

1 个答案:

答案 0 :(得分:0)

为什么C:\ MinGW \ include会出现在您的命令中,就像它是一个要链接的独立文件一样?它实际上是一个目录,所以很自然地,尝试将其作为文件读取将导致错误......“拒绝许可”似乎是这种无效访问尝试的完全合理的可能性。

为什么ld.exe(链接器)甚至想要查看C:\ MinGW \ include?可能是因为,在g ++命令中指定的方式,编译器将其识别为要链接的预编译对象文件(事实并非如此)。它是提供标准系统头文件的目录(可能还有一些额外的用户安装头文件),供编译器本身使用;它应该包含链接器不感兴趣的内容。也许你打算将它指定为“-I C:\ MinGW \ include”;然而,这是完全多余的,因为g ++,(和gcc),如果正确安装,已经知道在那里搜索。