【问题标题】:Can't compile a C program in Windows 7 with MinGW make无法在 Windows 7 中使用 MinGW make 编译 C 程序
【发布时间】:2021-04-09 18:39:37
【问题描述】:

我想在 Windows 7 上从 GitHub 编译一个 C 程序并得到一个找不到文件的错误。我已经安装了 MinGW Make 及其依赖项。我想也许这个程序只打算在 Linux 上运行。

控制台输出:


E:\work-c\iso2opl-clone\iso2opl>make
gcc -std=gnu99 -pedantic -usr\include -usr\local\inc
lude -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -c isofs.c -o isofs.o
process_begin: CreateProcess(NULL, gcc -std=gnu99 -pedantic -F:\programs\mingw\i
nclude -F:\programs\mingw\local\include -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SO
URCE -c isofs.c -o isofs.o, ...) failed.
make (e=2): Le fichier spécifié est introuvable.
make: *** [isofs.o] Erreur 2

生成文件:

CC = gcc


CFLAGS = -std=gnu99 -pedantic -I/usr/include -I/usr/local/include -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
#CFLAGS += -DDEBUG

ifeq ($(_WIN32),1)
    CFLAGS += -D_WIN32
endif

OBJS = isofs.o \
iso2opl.o

all: $(TARGET)

rm-elf:
    -rm -f $(TARGET) $(OBJS)

$(TARGET): $(OBJS)
    $(CC) $(OBJS) -o $(TARGET) $(LIBS)

%.o: %.c
    $(CC) $(CFLAGS) -c $< -o $@

%.o: %.cpp
    $(CC) $(CFLAGS) -c $< -o $@

clean:
    rm -r $(OBJS) $(TARGET) 

我不知道也许路径是错误的。

最好的问候

【问题讨论】:

  • 您是否考虑在笔记本电脑上安装Debian?它可以让您的生活更简单,您可以使用gcc -Wall -Wextra -g 进行编译;另见april.org
  • 您是正确的,此 makefile 期望在基于 POSIX 的系统上运行,例如 GNU/Linux 或 MacOS。我不确定你的问题是什么......?
  • 您是否尝试将CC 更改为mingw-gccmingw32-gccmingw64-gcc 并删除-I 标志?
  • -usr\include 是一个不正确的开关
  • 只是为了澄清:我建议从 Makefile 中删除整个 -I 选项(带有参数),在大多数情况下 MinGW 不需要它们。

标签: c windows makefile mingw


【解决方案1】:

尝试在 MSYS2 shell (https://www.msys2.org/) 中运行 make。我能够毫无问题地从https://github.com/arcadenea/iso2opl 构建源代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多