使用 make 命令编译失败

使用 make 命令编译失败

我正在使用 cygwin。大多数 Unix 命令都可以正常工作。我也可以使用 g++ 和 gcc 进行编译,但执行 make 时出现以下错误:

/cygdrive/b/tpm/src
$ make -f makefile.mak
"c:/program files/mingw/bin/gcc.exe" -Wall -Wnested-externs -ggdb -O0 -c - 
DTPM_WINDOWS -I"c:/program files/MinGW/include" -I"c:/program 
files/openssl/include" -I../utils -I. -DNO_BIT_FIELD_STRUCTURES AlgorithmCap.c -o AlgorithmCap.o
make: *** [makefile.mak:85: AlgorithmCap.o] Error 1

请注意,我已经下载了 make 包并将 bin 添加到路径中。

答案1

主要错误显示在以下行:

$ make -f makefile.mak“c:/program files/mingw/bin/gcc.exe”-Wall -Wnested-externs -ggdb -O0 -c -

此错误表明 cygwinmake找到了 C 编译器路径,即$(CC)C:\Program Files\mingw\bin\gcc.exe这里 OP 在同一台机器上安装了 mingw 和 cygwin。当相应的安装程序安装 cygwin 和 mingw 时,它会将/bin文件夹添加到系统环境变量中%PATH%。因此,在编译时,cygwinmake会抓取 mingw 目录中的第一个gcc.exe路径,然后出现错误。

为了消除路径混淆,%PATH%需要正确配置环境变量。有关如何编辑环境变量的更多详细信息,请参见以下链接。这里我给出了一个简单的概述。使用Win+打开运行对话框R。输入control.exe它并按回车键。转到系统和安全>系统>高级系统设置>环境变量>系统变量>路径。

系统变量

双击“Path”变量。你会看到一个“编辑环境变量”窗口。删除两个路径C:\cygwinC:\Program Files\mingw\binDelete

編輯路径變數

现在创建两个批处理文件,一个是 cygwin.bat,另一个是 mingw.bat。这可以在一个文件中完成,我只是尽量简单。将以下几行复制到相应的批处理文件中。这些命令将配置要编译的环境。

  • 对于 cygwin:
@echo off
C:
chdir C:\cygwin\bin
C:\cygwin\bin\bash.exe --login -i
  • 对于 mingw:
@echo off
set PATH=C:\Program Files\mingw\bin;%PATH%
cmd /k

类似问答:

相关内容