С++ Visual Studio: ссылка с использованием комментария прагмы

Я наткнулся на кусок кода, который использует #pragma comment (lib, "имя библиотеки" ).

Почему этот тип использования в отличие от просто связывания библиотеки с меню свойств? В каких ситуациях это требование требует? Я в Windows с помощью С++ Visual Studio 2010.

Было бы неплохо увидеть пример, который вызывает этот тип использования.

Ответ 1

Писатель библиотеки может поместить команду #pragma comment(lib, ...) в файл общедоступного заголовка (.h). В этом случае клиенту не нужно добавлять эту библиотеку в список зависимостей компоновщика. Включая h файл в программу, клиент автоматически привязан к требуемой библиотеке.

Ответ 2

Классический пример - привязка к различным версиям библиотеки:

#if CURRENT_VERSION >= 10
     #pragma comment(lib, "thirdPartyLibV2.0.lib")
#else //version < 10
     #pragma comment(lib, "thirdPartyLibV1.0.lib")
#endif

Ответ 3

Он содержался в том смысле, что все, что требуется, включает в себя заголовок файла для связанной библиотеки, который будет автоматически втянут. Вы даже можете сделать магию #ifdef..#endif, чтобы условно ввести нужную библиотеку на основе вашей среды.

Не каждый будет использовать ваш проект MSVC при запуске нового проекта с нуля, просто имея возможность #include, и пусть он работает, является признаком хорошо написанной библиотеки.