기본적으로 알고 있어야 하는 컴파일 및 링크 옵션을 정리하면 아래와 같습니다.

[컴파일 옵션]

/I : 추가 포함 디렉토리 설정
/D : 매크로 설정
/MT : 다중 스레드 정적 버전의 런타임 라이브러리를 사용
/Zi   : 완전한 디버깅 정보를 생성합니다.

[링크 옵션]

/MACHINE: 대상 플랫폼 지정 (X86, X64, IA64)
/OUT: 출력 파일 이름 설정
/LIBPATH: 추가 포함 라이브러리 디렉토리 설정
/DEBUG : 디버깅 정보를 만듭니다.

[매우 단순한 예제]

Sample.lib를 생성하고, main.exe에 링크하는 예제

main.c  Sample.c  Sample.h

해당 파일들을 한 폴더에 몰아놓고..
아래 명령어를 차근 차근 실행한다.

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