ming32-make.exe错误地解析了-I和-L标志

时间:2018-04-10 10:13:13

标签: c makefile shared-libraries mingw

我在Windows计算机上使用MinGW,尝试编译使用共享库的hello world程序。经过一番荒谬的尝试后,我发现了以下内容:

  • 使用gcc手动编译它并为所需目录提供-I-L标志。
  • 使用MinGW / msys / 1.0 / bin安装目录下提供的 msys make.exe 文件正确执行Makefile ,没有任何问题
  • 使用相同 Makefile 下提供的 mingw32-make.exe 无法正常工作>。根据我的理解,它根本不解析-I-L标志。如果我在各自的MinGW目录下添加依赖项(包括和libs),它可以正常工作。

过去几天,当我尝试并熟悉这些工具时(我对C&C的语法感到满意但过去一无所知)我阅读了很多指南,似乎没有人有这个问题(来自在不使用IDE的情况下在Windows机器上实际尝试此操作的少数人)。我错过了什么?我的MinGW安装是否有此问题?

请注意,起初我尝试使用64位版本的库来编译项目但是失败了。我猜测这意味着我有一个32位的MinGW安装。

知道有些人会要求查看Makefile:

CC = gcc
MY_LIB = -L/e/C_Projects/Libraries/MySharedLib/lib -lMyLibName
MY_INCLUDE = -I/e/C_Projects/Libraries/MySharedLib/include
CFLAGS = -Wall -c $(MY_INCLUDE)
LDFLAGS = -lmingw32 -mwindows $(MY_LIB)
EXE = Test.exe

all: $(EXE)


$(EXE): main.o

    $(CC) $< $(LDFLAGS) -o $@

main.o: main.c

    $(CC) $(CFLAGS) $< -o $@

clean:

    del *.o && del $(EXE)

mingw32-make.exe产生的错误如下

main.c:1:22: fatal error: MyLib.h: No such file or directory
 #include <MyLib.h>
                      ^
compilation terminated.
Makefile:19: recipe for target 'main.o' failed
mingw32-make: *** [main.o] Error 1

0 个答案:

没有答案