We currently have a Visual Studio 2003 development project that creates a static library.
This library is part of a kit we deliver to our customers, who link it to their development project so that they may use our functionality.
Our lib is very large. This is partially (we believe) caused by another library that we link as a dependecy. Our end goal is to reduce the size of our library, but prior to doing so we need to have a more detailed understanding about how static libraries are linked.
Via visual studio, we see two options, we can either specify the library as a dependency (via the "Addition Dependencies" input under project->properites) or not specify it in this input.
If we specify the library, we note that the entirety of the dependent library is linked into our lib, thus making our lib very large.
However, if we do not specify the dependent lib, we note that our lib is very small. However, if you then attempt to link our lib to another executable the dependent lib is required for linking.
Note that when we build our lib with the dependent lib linked in (thus at it's full size) and then build an exe from it, the exe is again, very small. This leads us to believe that we could if possible avoid linking all of the dependent lib into our lib.
However, we do not know how to accomplish this. As a result, we are requesting a thorough report on how this works and the different options available.
The paper should be written for an only mildly technical audience. Imagine you are writing the paper for C/C++ students who have very little prior experience with the subject matter.
Looking forward to your feedback, thank you.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
win32