Programing

“#pragma comment”는 무엇을 의미합니까?

lottogame 2020. 5. 31. 09:51
반응형

“#pragma comment”는 무엇을 의미합니까?


#pragma comment다음은 무엇을 의미합니까?

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

#pragma comment생성 된 개체 파일에 주석을 남기도록 Visual C ++를 나타내는 컴파일러 지시문입니다. 그러면 링커가 오브젝트 파일을 처리 할 때 주석을 읽을 수 있습니다.

#pragma comment(lib, libname) 링커가 프로젝트 속성에서 라이브러리 속성을 추가 한 것처럼 라이브러리 종속성 목록에 'libname'라이브러리를 추가하도록 지시합니다. Linker->Input->Additional dependencies

MSDN에 대한 #pragma 의견 참조


나는 항상 "컴파일러 지시문"이라고 불렀습니다. 컴파일 단계에서 컴파일러가 위에 표시된 것과 같은 라이브러리를 포함하여 분기, 특정 오류 비활성화 등을 수행하도록 지시합니다.

컴파일러 회사는 일반적으로 기능을 용이하게하기 위해 자체 확장을 만듭니다. 예를 들어, Microsoft는 "#pragma once"거래를 시작했으며 MS 제품에만 적용되었으므로 확실하지 않습니다.

Pragma 지시문 표에 "#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.libuser32.lib링커에 의해 검색되고 최종 실행 파일에 포함되어 있습니다.


MSDN에서 제공하는 답변과 문서가 가장 좋지만 #pragma comment링크 타임에 링커에 명령을 보내야하는 경우가 많은 일반적인 경우를 하나 추가하고 싶습니다.

#pragma comment(linker,"/ENTRY:Entry")

엔트리 포인트 양식을 변경하려면 링커에게 WinMain()Entry()(가) 것을 이후 CRTStartup에 설정 제어를 전송하는 것Entry()

참고 URL : https://stackoverflow.com/questions/3484434/what-does-pragma-comment-mean

반응형