С++ 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
, и пусть он работает, является признаком хорошо написанной библиотеки.