当路径包含空格时,GNU GCC 编译器无法编译(C++)

当路径包含空格时,GNU GCC 编译器无法编译(C++)

我完全按照 Lefteris 的教程“玩转 OpenCL:高斯模糊”中所述安装了 code::blocks 和 GNU GCC + SDK Stream (Open GL)。为什么我不能使用库路径中的空格进行编译,而作者 Lefteris 可以?SDK Stream 路径不可更改:

C:\Program Files\AMD APP 

。当我尝试 GCC 时,它看起来像

"Files\AMD" 

... 并产生错误。有解决方案吗?我使用的是 Windows XP。

答案1

尝试用引号将 GCC CMD 行参数中带有空格的段括起来,例如,

C:\"Program Files"\"AMD APP"\... 

或者

"C:\Program Files\AMD APP\..."

答案2

引号没有任何帮助。这与空格无关,但与文件名的长度有关。编译器将其视为旧版 MS-DOS,文件名为 8 个字符,扩展名为 3 个字符。任何较长的文件名/文件夹都必须重命名。

解决方案: 1. 转到您需要获取真实名称的目录创建指向 command.com 的链接;工作路径字段保持为空 2. 提交 3. 在文件夹中运行 command.com 4. 在命令提示符中输入 dir 5. 选择文本并通过 Enter 将其复制到剪贴板 6. 根据需要编辑文本并将其粘贴到 Code::Block 以下是我的路径示例:

C:\PROGRA~1\AMDAPP~1\lib\x86\OpenCL.lib

( 的快捷方式C:\Program Files\AMD APP\lib\x86\OpenCL.lib

W:\___NEW~1\GAUSSI~1\GAUSSI~2\refu.dll

( 的快捷方式W:\___NEW_PROJECTS\GaussianBlur\Gaussian_with_OpenCL\refu.dll

现在它可以正常工作并且错误消失。我希望这对其他人有所帮助。

相关内容