C++ Visual Studio: linking using pragma comment
Solution 1
The library writer can place a #pragma comment(lib, ...)
command in the public header (.h) file. In this case, the client doesn't need to add this library to the linker dependencies list. By including an h-file in the program, the client is automatically linked to the required library.
Solution 2
Classic example - linking against different versions of the library:
#if CURRENT_VERSION >= 10
#pragma comment(lib, "thirdPartyLibV2.0.lib")
#else //version < 10
#pragma comment(lib, "thirdPartyLibV1.0.lib")
#endif
Solution 3
It's contained in the sense that all it takes is including the header file for the associated library to be automatically pulled in. You can even do #ifdef..#endif
magic to conditionally bring in the right library based on your environment.
Not everyone is going to be using your MSVC project when starting a new project from scratch, simply being able to #include
and have it work is the sign of a well written library.
user1612986
Updated on July 21, 2020Comments
-
user1612986 almost 4 years
I came across a piece of code which uses #pragma comment(lib, "libraryname").
Why this type of usage as opposed to just linking the library from the properties menu? In what situations is this usage called for? I am in windows using C++ Visual Studio 2010.
It would be nice to see an example which calls for this type of usage.
-
user1612986 over 11 yearsdo i need to also physically add the library to the visusal sutudio project in this case ?
-
WhozCraig over 11 yearsNo. but the library must be in the available library search path