C++ Visual Studio: linking using pragma comment

后端 未结 3 1844
南旧
南旧 2020-12-18 18:58

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 men

相关标签:
3条回答
  • 2020-12-18 19:17

    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.

    0 讨论(0)
  • 2020-12-18 19:26

    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
    
    0 讨论(0)
  • 2020-12-18 19:34

    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.

    0 讨论(0)
提交回复
热议问题