GCC 无法正常工作(与 FreePascal 冲突)

问题描述 投票:0回答:1

我已经安装了 MinGW 并设置了 PATH,但是 gcc 没有看到像 stdio.h 这样的包含文件。我输入“where gcc”,发现 FreePascal 附带了 gcc。显然我的电脑正在使用它附带的 gcc,即使它没有在 PATH 中设置,而且我不知道 FreePascal 的 gcc 是如何成为默认选项的。不过,我暂时无法删除 FreePascal。

我尝试将 MinGW 移至 FreePascal 的目录,但这没有帮助。 “Gcc -v” 说:

    #include "..." search starts here:
    End of search list.

然后添加:

    The following default directories have been omitted from the search path:
    /gcc-2.95/lib/gcc-lib/i386-mingw32/2.95/../../../../include/g++-3
    /gcc-2.95/lib/gcc-lib/i386-mingw32/2.95/../../../../include
    /gcc-2.95/lib/gcc-lib/i386-mingw32/2.95/../../../../i386-mingw32/include
    /gcc-2.95/lib/gcc-lib/i386-mingw32/2.95/include
    /usr/local/i386-mingw32/include
    End of omitted list.
    empty.c:1: No include path in which to find stdio.h

我在任何地方都没有这些默认目录,所以我想省略它们也没关系。但最终的结果仍然是 PATH 被忽略。

有什么想法吗?我可以在不卸载 FreePascal 的情况下修复这个混乱吗?

c gcc path pascal freepascal
1个回答
0
投票

Free Pascal 不附带 GCC,但它封装了 Windres,需要 gcc 进行预处理。 FPC 发行版中的 gcc 二进制文件是一个存根,可以执行 Windres 所需的最少预处理。

解决方法很简单,如果要使用FPC,请确保FPC路径处于活动状态,如果要使用mingw,请确保mingw/msys路径处于活动状态。我从操作系统路径列表中删除所有路径,并使用如下所示的批处理文件切换到 FPC,以及其他编译器的类似文件。

@echo off

Rem we save oldpath only once, so we can always revert to it.

if "%OLDPATH%" neq "" goto :nosave
set OLDPATH=%PATH%
:nosave 
PATH c:\fpc\3.2.2\bin\i386-win32;%OLDPATH%
© www.soinside.com 2019 - 2024. All rights reserved.