>  기사  >  운영 및 유지보수  >  Win32 SDK 기본 사항 (2) cl.exe 및 link.exe 컴파일 및 연결 절차에 대한 자세한 설명(그림)

Win32 SDK 기본 사항 (2) cl.exe 및 link.exe 컴파일 및 연결 절차에 대한 자세한 설명(그림)

黄舟
黄舟원래의
2017-06-06 09:36:593472검색

프로그램의 컴파일 과정부터 시작

이전 글에서는 windows 하위 프로그램에 대한 분류, 컴파일러, 커넥터, 공통 헤더 파일, 라이브러리 파일 및 기타 지식을 소개했습니다. 체계. 이 기사에서는 프로그램의 컴파일 과정에 대해 설명합니다.

저는 소스 코드 컴파일 프로세스가 두 단계로 나누어져 있다는 것을 모두가 알고 있다고 믿습니다. 첫째, 컴파일 프로세스의 주요 작업은 소스 코드를 중간 파일, 즉 windows의 cl.exe로 변환하는 것입니다. 의 역할은 .c 파일 또는 .cpp 파일을 중간 .obj 파일로 변환하는 것입니다. 두 번째는 연결 프로세스이며, 주요 작업은 다양한 중간 파일을 변환하는 것입니다. 파일 및 라이브러리 파일 연결은 windowslink.exe 역할인 실행 파일을 생성합니다. 이는 .obj 파일과 라이브러리 파일을 exe 프로그램에 연결합니다.

이 글에서는 주로 VSIDE을 제거하는 방법과 명령줄을 사용하여 cl.exelink.exe를 사용하여 프로그램을 컴파일하고 링크하는 방법을 설명합니다. .

Test.c 파일 작성

먼저 새 test.txt 파일을 만든 다음 이름을 text.c로 바꿉니다. 이 파일에서 다음 코드를 입력하세요.

#include "windows.h"
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,  
                     _In_opt_ HINSTANCE hPrevInstance,  
                     _In_ LPWSTR    lpCmdLine,  
                     _In_ int       nCmdShow)   
{
  MessageBox(NULL,"Hello Win32","sdk",MB_ABORTRETRYIGNORE|MB_ICONERROR);
  return 0;
}

          #include "windows.h" windows 시스템에 필요한 모든 헤더 파일을 가져옵니다. 그런 다음 windows 창 프로그램의 주요 기능 wWinMain을 소개했습니다. 다음은 Winmain의 각 형식 매개변수의 역할에 대한 간략한 설명입니다. hInstance는 현재 프로그램의 인스턴스 핸들이며, hPrevInstance이전 프로그램의 메모리 위치입니다. 현재 프로그램의 인스턴스 핸들은 이미 사용되지 않습니다. lpCmdLine은 명령줄 매개변수입니다. 즉, 명령줄에서 프로그램을 실행할 때 일부 문자열을 매개변수로 연결할 수 있습니다. 창 표시 방법은 최대화 또는 최소화입니다. 모달 대화 상자를 정의하기 위해 기본 함수에서 MessageBox를 호출했습니다. 컴파일이 성공하면 프로그램을 실행한 후 대화 상자가 나타납니다. 이제 Test.c

파일이 작성되었으므로 다음으로 해야 할 일은 파일을 별도로 컴파일하고 링크하는 것입니다.

Compile Test.c windows

cmd 명령줄 도구를 열고 현재 작업 디렉터리로 전환한 후 다음 명령을 사용하여 을 컴파일합니다. 테스트.c 파일: Cl.exe /c test.c

컴파일이 완료된 후 test.objintermediate 파일이 작업 디렉터리에 생성됩니다.

명령줄 프롬프트에서 cl.exe 명령 및 기타 명령을 찾을 수 없는 경우 참고로, 환경변수 cl.exe가 도입되지 않은 디렉터리라는 점을 이해해주셔야 할 것 같습니다. 환경변수를 먼저 추가하거나 전체 경로를 사용하여 도입할 수도 있습니다. test.obj 파일을 생성했다면 컴파일 프로세스가 완료되었으며 연결 프로세스를 시작할 수 있다는 의미입니다.

4.

링크 생성test.exe

다음으로 다음 명령을 실행하여 실행 파일을 생성합니다.

Link.exe test.obj user32.lib

User32 .lib

이전 기사에서 이 라이브러리에 대해 언급했습니다. 여기에는 원하는 사용자 인터페이스와 메시지 관련 API가 포함되어 있습니다. 예기치 않게 호출해야 하는 MessageBox이 이 라이브러리에 정의되어 있습니다. test.exe 파일은 작업 디렉터리


에 생성되어야 합니다. 이 exe를 두 번 클릭하면 정의한 대화 상자가 나타납니다.


알았어

, 테스트가 끝났습니다. VS인터페이스IDE와 완전히 분리되어 사용자 정의 대화 상자를 생성한 것이 놀랍지 않나요? 여기에는 Xiao Yueyue의 비열한 표현이 있어야 합니다. . .

위 내용은 Win32 SDK 기본 사항 (2) cl.exe 및 link.exe 컴파일 및 연결 절차에 대한 자세한 설명(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.