当文件中有2个共享库时,如何选择我需要的共享库?

How can I choose shared library I need when has 2 share libraries in the file?

有两个同名不同后缀的共享库。例如。 (A.dll 和 A.lib)。现在,当我使用“make”命令生成 C 代码时,编译器选择 A.lib 作为默认选项。那我该如何选择自己需要的flexible库呢?而下面的代码就是makefile的代码。

CC = gcc

COSI_LIB = '/C/A'

OBJ_NAME = B.exe
SOURCE =  B.c

${OBJ_NAME}: ${SOURCE}
    @$(CC) -I${COSI_LIB} -L${COSI_LIB} -lA -o ${OBJ_NAME} ${SOURCE}

clean:
    @rm $(OBJ_NAME) -r -f

I need to know that When there are two same name files but different format (ex. One named abc.dll and another named abc.lib) and I input command ‘make’ on term, I wish that compiler select .dll file instead of .lib file.

首先,编译器 不关心任何 .lib.dll 文件,只关心 link呃确实如此。

其次,在 Windows 上,linker never 使用 .dlls。它总是使用 .lib,它是 .lib 文件,其中包含 或者 .o 文件(直接 linked 到您的二进制),“dll导入”,它告诉linker构建“导入表”以在运行时使用以从相应的.dll.

也就是说(与 UNIX 不同)您 不必决定 是 link 反对 .lib 还是 .dll(您总是 link 反对 .lib)。构建 .lib.dll 的人决定了哪些(如果有的话)部分要直接 link 编辑,哪些要从 .dll 中导入。