C 当一个库我的程序依赖于另一个库时

C 当一个库我的程序依赖于另一个库时,c,C,当我的程序所依赖的库依赖于另一个库时,当我使用静态链接或动态链接编译程序时,我应该指定这两个库吗 当我用动态链接编译我的程序时,我应该在加载过程中找到这两个库吗 谢谢。当您的EXE依赖于DLL a时,您应该在链接EXE时将导入库a.lib添加到链接器中 当DLL A依赖于DLL B时,在链接A.DLL时,应将导入库B.lib添加到链接器 运行EXE时,两个DLL应在搜索路径中可用 编辑 构建可执行模块(即EXE或DLL)包括编译源文件和将编译器输出与库链接到可执行文件 当您使用DLL时,在编译源

当我的程序所依赖的库依赖于另一个库时,当我使用静态链接或动态链接编译程序时,我应该指定这两个库吗

当我用动态链接编译我的程序时,我应该在加载过程中找到这两个库吗


谢谢。

当您的EXE依赖于DLL a时,您应该在链接EXE时将导入库a.lib添加到链接器中

当DLL A依赖于DLL B时,在链接A.DLL时,应将导入库B.lib添加到链接器

运行EXE时,两个DLL应在搜索路径中可用

编辑

构建可执行模块(即EXE或DLL)包括编译源文件和将编译器输出与库链接到可执行文件

当您使用DLL时,在编译源代码时,会包含定义DLL接口的头文件。此处不需要DLL的导入库(A.lib、B.lib)

在构建过程的第二阶段,链接器创建可执行模块。链接器输入是编译器输出、静态库、运行时的导入库(如msvcr110.dll)和A.dll的导入库


所以当我说“链接时”,我指的是在构建过程中链接器的操作。编译器在这一点上完成了它的工作。如果使用Visual Studio,则必须将导入库A.lib添加到项目的
链接器设置中。

库不应在运行时加载。你能区分静态库和动态链接库吗?告诉操作系统可能很有用,因为词汇表取决于它。“链接A.DLL时”,是指编译A.DLL代码的链接阶段吗?