在 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) 文件时出错的主要内容,如果未能解决你的问题,请参考以下文章