기본적으로 알고 있어야 하는 컴파일 및 링크 옵션을 정리하면 아래와 같습니다.
[컴파일 옵션]
/I : 추가 포함 디렉토리 설정
/D : 매크로 설정
/MT : 다중 스레드 정적 버전의 런타임 라이브러리를 사용
/Zi : 완전한 디버깅 정보를 생성합니다.
[링크 옵션]
/MACHINE: 대상 플랫폼 지정 (X86, X64, IA64)
/OUT: 출력 파일 이름 설정
/LIBPATH: 추가 포함 라이브러리 디렉토리 설정
/DEBUG : 디버깅 정보를 만듭니다.
[매우 단순한 예제]
Sample.lib를 생성하고, main.exe에 링크하는 예제
해당 파일들을 한 폴더에 몰아놓고..
아래 명령어를 차근 차근 실행한다.
C:> cl -c Sample.c
C:> lib Sample.obj -OUT:Sample.lib
C:> cl -c main.c
C:> link /OUT:main.exe main.obj Sample.lib
그리고, 아래는 컴파일 및 링커 옵션을 활용한 약간 더 복잡한 예제 입니다.
C:> cl /MT /I ".\\" /I "..\\" /D "WIN32" /D "UNICODE" -c Sample.c
C:> lib /MACHINE:X86 /LIBPATH:".\\" /LIBPATH:"..\\" Sample.obj -OUT:Sample.lib
C:> cl /MT /I ".\\" /I "..\\" /D "WIN32" /D "UNICODE" -c main.c
C:> link /MACHINE:X86 /OUT:main.exe main.obj Sample.lib
cl.exe 실행을 위한 cmd 환경 설정
x86)
%windir%\system32\cmd.exe /k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall""
x64)
%windir%\system32\cmd.exe /k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall"" amd64