在 Windows 7 中通过 GnuWin32 使用 Microsoft Visual C/C++ 编译器编译源 (.C) 文件时出错

Posted

技术标签:

【中文标题】在 Windows 7 中通过 GnuWin32 使用 Microsoft Visual C/C++ 编译器编译源 (.C) 文件时出错【英文标题】:Get Error When Compile Source (.C) file Using Microsoft Visual C/C++ compiler via GnuWin32 in Windows 7 【发布时间】:2014-09-10 07:44:25 【问题描述】:

我将向您展示如下步骤......

首先你下载GNUWIN32。

然后在 windows 7 上安装并设置环境路径。

    我将制作a.C如下所示的源文件

    #include <stdio.h>
    int main()
    
        //FileName: a.C
        printf("Hello World !!! Its works");
        return 0;
    
    

    我会制作Makefile。如下图所示

    #MakeFile Source Code... FileName: Makefile
    OBJS: a
    
    #add path visual c/c++ compiler
    PATH=C:/Program Files\ (x86)\Microsoft\ Visual\ Studio\ 9.0/VC
    
    CC: $(PATH)/bin/cl.exe
    
    all: a
    
    a: 
        $(CC) -c a.C
    
    clean:
        rm -rf $(OBJS)  
    

    我编译源代码。它得到错误。

    Input: C:\Users\*****\Desktop\Test>make
    
    output:
    cc -c a.C
    process_begin: CreateProcess(NULL, cc -c a.C, ...) failed.
    make (e=2): The system cannot find the file specified.
    make: *** [a] Error 2
    

请让我帮忙,如何使用 Visual c++ 编译器构建此代码。

【问题讨论】:

明明已经安装了 Visual Studio,为什么还要让 GnuWin32 过于复杂? 需要使用Visual Studio自带的vsvars.bat文件来设置命令行环境。 您好,fritzone 感谢您的重播。我使用最新的 sqlite 版本构建 sqlcrypt 源文件,但遵循此过程... 您好,Paul R 感谢您的重播,但该过程已经完成。 【参考方案1】:

PATH 是用于 Makefile 中变量的错误名称,因为它也是列出在查找其他程序时要搜索的路径的变量的名称。换成别的。

【讨论】:

你好汤姆感谢您的重播。路径名称已更改并再次重新编译它得到相同的错误【参考方案2】:

您的 makefile 中存在语义错误。您将 CC 定义为目标,而不是变量。修复它:

CC=$(PATH)/bin/cl.exe

线索在错误消息process_begin: CreateProcess(NULL, cc -c a.C, ...) failed.中。你可以看到它正在尝试执行cc 而不是cl.exe

【讨论】:

你好,andy brown 感谢重播,但我将从 CC 更改为 cc,但它得到相同的错误。但是你给我一个例子,通过 Make 命令使用 Visual C++ 编译器构建 a.C 文件。【参考方案3】:

如果您查看 μSoft 提供的用于为编译器设置环境的 vcvars32.bat,您会看到它向您的 %PATH% 环境变量添加了几个文件夹。 p>

如果你愿意,你可以在 make 中表达这个%PATH%minging。类似的东西

export PATH := /cygdrive/c/Program Files/Microsoft Visual Studio 9.0/Common7/IDE:/cygdrive/c/Program Files/Microsoft Visual Studio 9.0/VC/BIN:/cygdrive/c/Program Files/Microsoft Visual Studio 9.0/Common7/Tools:/cygdrive/c/Program Files/Microsoft Visual Studio 9.0/VC/VCPackages:/cygdrive/c/Program Files/Microsoft SDKs/Windows/v6.0A/bin:$PATH:/cygdrive/C/PROGRA~1/MICROS~2.0/VC/redist/DEBUG_~1/x86/MICROS~1.DEB

是的,这是 make 语法。它使用前缀和后缀扩充任何现有的%PATH%(看到中间的$PATH 了吗?)。

请注意,这是为 cygwin make 准备的格式。您可能需要进行一些调整。哦,别忘了cl.exe 也需要对%INCLUDE%%LIB%%LIBPATH% 进行适当的设置。

【讨论】:

以上是关于在 Windows 7 中通过 GnuWin32 使用 Microsoft Visual C/C++ 编译器编译源 (.C) 文件时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何在windows下安装reviewboard

在windows系统和kali中通过sqlmap注入

如何在 LARAVEL_7 中通过迁移发送多个复选框

Windows下编译MySQL 5.7源代码

如何在 Python 中通过 SFTP 检查 S_ISREG 以获取 Windows NTFS 文件?

windows 下运行bison总是出错,请大神帮忙啊!!!