Что означает" #pragma comment"?
Что значит #pragma comment
означает следующее?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
4 ответов
#pragma comment
- это директива компилятора, которая указывает Visual C++ оставить комментарий в сгенерированном объектном файле. Затем комментарий может быть прочитан компоновщиком при обработке объектных файлов.
#pragma comment(lib, libname)
говорит компоновщику добавить библиотеку "libname" в список зависимостей библиотеки, как если бы вы добавили ее в свойствах проекта в Linker->Input->Additional dependencies
посмотреть в#Pragma комментарий на MSDN
Я всегда называл их "директив компилятора."Они направляют компилятор на выполнение вещей, ветвление, включая библиотеки, как показано выше, отключение определенных ошибок и т. д., на этапе компиляции.
компании-компиляторы обычно создают свои собственные расширения для облегчения своих функций. Например, (я считаю) Microsoft начала сделку "#pragma once", и это было только в продуктах MS, теперь я не уверен.
Директивы Pragma это включает "# Pragma comment " в таблице, которую вы увидите.
HTH
Я подозреваю, что GCC, например, имеет свой собственный набор #pragma.
директивы Pragma определяют параметры компилятора для операционной системы или компьютера (x86 или x64 и т. д.). Существует несколько вариантов. Подробности можно найти вhttps://msdn.microsoft.com/en-us/library/d9x1s805.aspx
#pragma comment( comment-type [,"commentstring"] )
имеет следующий формат.
Refer https://msdn.microsoft.com/en-us/library/7f0aews7.aspx для деталей о различном коммент-типе.
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
вышеуказанные строки кода включают имена библиотек (или путь), которые необходимо искать компоновщику. Эти сведения включаются как часть записи поиска библиотеки в объекте файл.
Итак, в данном случае kernel.lib
и user32.lib
ищутся компоновщиком и включаются в окончательный исполняемый файл.