Что означает "#pragma comment"?



Что значит #pragma comment значит в следующий?



#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
1317   4  

4 ответов:

#pragma comment - это директива компилятора, которая указывает Visual C++ оставить комментарий в созданном объектном файле. Затем комментарий может быть прочитан компоновщиком при обработке объектных файлов.

#pragma comment(lib, libname) говорит компоновщику добавить библиотеку libname в список зависимостей библиотеки, как если бы вы добавили ее в свойства проекта по адресу Linker->Input->Additional dependencies

посмотреть #pragma comment на MSDN

Я всегда называл их "директив компилятора."Они направляют компилятор делать то, ветвление, включая библиотеки, как было показано выше, отключение конкретных ошибок и т. д., на этапе компиляции.

компании-компиляторы обычно создают свои собственные расширения для облегчения своих функций. Например, (я считаю) Microsoft начала сделку "#pragma once", и это было только в продуктах MS, теперь я не так уверен.

Директивы Pragma It включает "# pragma comment " в таблице, которую вы увидите.

HTH

Я подозреваю, что GCC, например, имеет свой собственный набор #pragma.

эти ссылки в библиотеках, выбранных в MSVC++.

директивы Pragma определяют параметры компилятора для конкретной операционной системы или компьютера (x86 или x64 и т. д.). Есть несколько вариантов. Подробности можно найти в https://msdn.microsoft.com/en-us/library/d9x1s805.aspx

#pragma comment( comment-type [,"commentstring"] ) имеет следующий формат.

см https://msdn.microsoft.com/en-us/library/7f0aews7.aspx для получения подробной информации о различных комментариях типа.

#pragma comment(lib, "kernel32") #pragma comment(lib, "user32")

вышеуказанные строки кода включают в себя имена библиотек (или путь), которые должны быть найдены компоновщиком. Эти сведения включены как часть записи поиска библиотеки в объекте файл.

Итак, в данном случае kernel.lib и user32.lib ищутся компоновщиком и включаются в окончательный исполняемый файл.

Comments

    Ничего не найдено.