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

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

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

首先下载GNUWIN32

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

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

    #include <stdio.h>
    int main()
    {
        //FileName: a.C
        printf("Hello World !!! Its works");
        return 0;
    }
    
  2. 我会制作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)  
    
  3. 我编译源代码。它出错了。

    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++ 编译器构建此代码。

c++ c visual-c++ gnu-make
3个回答
1
投票

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


1
投票

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

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

线索就在错误消息中

process_begin: CreateProcess(NULL, cc -c a.C, ...) failed.
。您可以看到它正在尝试执行
cc
而不是
cl.exe


0
投票

如果您查看 μSoft 提供的

vcvars32.bat
来设置编译器环境,您将看到它将 several 文件夹添加到您的
%PATH%
环境变量中。

如果你愿意的话,你可以在

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%
进行适当的设置。

© www.soinside.com 2019 - 2024. All rights reserved.