The test scenario, TEST,LIB1,LIB2,DLL1,DLL2, is divided into the following four scenarios:
1, Test->lib1->lib2
LIB1 compiles its own code to the LIB2 part, only needs to lib2 the header file, implements the code for LIB2, and associates with the placeholder.
When the test connection is generated, the LIB1 code implementation is included, recursively, and the code implementation of the associated LIB2 in the LIB1 is included.
LIB1 and LIB2 are no longer required to run test.
2, Test->lib1->dll2
LIB1 compiles its own code to the DLL2 part, only needs to dll2 the header file, implements the code for DLL2, and associates with the placeholder.
When the test connection is generated, the LIB1 code implementation is included, but the code in the DLL2 is not included.
When you run test, you do not need lib1, but you need to Dll2 "Lib file that does not require DLL"
3, Test->dll1->lib2
DLL1 compiles its own code, the LIB2 part, needs the LIB2 header file and the implementation, namely the LIB2, the LIB2 code implementation to include in the DLL1
When the test connection is generated, the code in DLL1 is not included.
When you run test, you do not need dll1, but you need to lib2
4, Test->dll1->dll2
DLL1 compiles its own code to DLL2 parts, requires DLL2 header files and Lib files, implements the code for DLL2, and associates with placeholders.
When the test connection is generated, test requires DLL1 Lib,dll1 to dll2 Lib, but the code implementation is not included in test.
When you run test, you need DLL1 and dll2 "don't need their lib."
Static libraries and dynamic libraries call each other