当文件中有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 使用 .dll
s。它总是使用 .lib
,它是 .lib
文件,其中包含 或者 .o
文件(直接 linked 到您的二进制),或“dll导入”,它告诉linker构建“导入表”以在运行时使用以从相应的.dll
.
也就是说(与 UNIX 不同)您 不必决定 是 link 反对 .lib
还是 .dll
(您总是 link 反对 .lib
)。构建 .lib
和 .dll
的人决定了哪些(如果有的话)部分要直接 link 编辑,哪些要从 .dll
中导入。
有两个同名不同后缀的共享库。例如。 (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 使用 .dll
s。它总是使用 .lib
,它是 .lib
文件,其中包含 或者 .o
文件(直接 linked 到您的二进制),或“dll导入”,它告诉linker构建“导入表”以在运行时使用以从相应的.dll
.
也就是说(与 UNIX 不同)您 不必决定 是 link 反对 .lib
还是 .dll
(您总是 link 反对 .lib
)。构建 .lib
和 .dll
的人决定了哪些(如果有的话)部分要直接 link 编辑,哪些要从 .dll
中导入。