我在Windows计算机上使用MinGW,尝试编译使用共享库的hello world程序。经过一番荒谬的尝试后,我发现了以下内容:
-I
和-L
标志。-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