为什么 CodeBlocks (13.12) 找不到 C:\MinGW\include?
Why can't CodeBlocks (13.12) find C:\MinGW\include?
我正在尝试使用代码块构建我的 C++ 项目,但出现此错误:
ld.exe 找不到 C:\MinGW\include 权限被拒绝
我最初手动安装 mingw 是为了 运行 eclipse 的 c++ 版本,然后我决定移动到代码块。因为它不是 运行ning,所以我删除了第一个版本的 mingw(因为 codeblocks 已经安装了它,我认为它有冲突),然后卸载并重新安装了 codeblocks(为了确定,我也重新启动了电脑)。它仍然给了我一个错误,所以我在线搜索错误并发现codeblocks编译器不喜欢路径中的空格和括号(带有自己的mingw文件夹的codeblocks安装在c:\ programmi(x86)所以你可以看到为什么它不工作)并且建议将 mingw 移动到 c:\ 并将代码块中关联的编译器路径选项设置为新路径(在 Whosebug 上找到的建议)。现在它给了我我在上面写的错误。
P.S.:
我尝试在管理员模式下打开代码块,但它仍然给出错误。这是构建日志 windows 向我显示的内容: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 秒)1 个错误,0 个警告(0 分钟(秒),1 秒)。
谁能告诉我这是怎么回事?
为什么 C:\MinGW\include 出现在您的命令中,就好像它是要链接的独立文件一样?它实际上是一个目录,因此很自然地,尝试将其作为文件读取会导致错误..."permission denied" 似乎是这种无效访问尝试的完全合理的可能性。
为什么 ld.exe(链接器)甚至想查看 C:\MinGW\include?可能是因为,按照您在 g++ 命令中指定的方式,编译器将其识别为要链接的预编译目标文件(事实并非如此)。它是提供标准系统头文件(可能还有一些额外的用户安装的头文件)的目录,供编译器本身使用;它不应该包含链接器感兴趣的任何内容。也许您打算将其指定为“-I C:\MinGW\include”;然而,这完全是多余的,因为 g++,(和 gcc),如果安装正确,无论如何已经知道在那里搜索。
我正在尝试使用代码块构建我的 C++ 项目,但出现此错误:
ld.exe 找不到 C:\MinGW\include 权限被拒绝
我最初手动安装 mingw 是为了 运行 eclipse 的 c++ 版本,然后我决定移动到代码块。因为它不是 运行ning,所以我删除了第一个版本的 mingw(因为 codeblocks 已经安装了它,我认为它有冲突),然后卸载并重新安装了 codeblocks(为了确定,我也重新启动了电脑)。它仍然给了我一个错误,所以我在线搜索错误并发现codeblocks编译器不喜欢路径中的空格和括号(带有自己的mingw文件夹的codeblocks安装在c:\ programmi(x86)所以你可以看到为什么它不工作)并且建议将 mingw 移动到 c:\ 并将代码块中关联的编译器路径选项设置为新路径(在 Whosebug 上找到的建议)。现在它给了我我在上面写的错误。
P.S.:
我尝试在管理员模式下打开代码块,但它仍然给出错误。这是构建日志 windows 向我显示的内容: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 秒)1 个错误,0 个警告(0 分钟(秒),1 秒)。
谁能告诉我这是怎么回事?
为什么 C:\MinGW\include 出现在您的命令中,就好像它是要链接的独立文件一样?它实际上是一个目录,因此很自然地,尝试将其作为文件读取会导致错误..."permission denied" 似乎是这种无效访问尝试的完全合理的可能性。
为什么 ld.exe(链接器)甚至想查看 C:\MinGW\include?可能是因为,按照您在 g++ 命令中指定的方式,编译器将其识别为要链接的预编译目标文件(事实并非如此)。它是提供标准系统头文件(可能还有一些额外的用户安装的头文件)的目录,供编译器本身使用;它不应该包含链接器感兴趣的任何内容。也许您打算将其指定为“-I C:\MinGW\include”;然而,这完全是多余的,因为 g++,(和 gcc),如果安装正确,无论如何已经知道在那里搜索。