티스토리 뷰
환경 : Visual Studio 2015 기준, 다른 버전 사용시 환경 변수에 등록되는 Visual Studio의 경로를 해당 Visual Studio에 맞는 경로로 수정
build.bat : make 하기 전, 사전 세팅을 위한 배치 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | @echo off :Start SET VSPATH=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC SET INCLUDE=C:\Program Files\OpenSSL\include;%INCLUDE% SET LIB=C:\Program Files\OpenSSL\lib;%LIB% SET LIBPATH=C:\Program Files\OpenSSL\lib;%LIBPATH% SET COMSPEC=cmd.exe :BuildCommand ECHO "=================================================" ECHO "| [+] Environment variables are ready to build. |" ECHO "| [+] Please enter the following command: |" ECHO "| |" ECHO "| nmake -f ssl_minivet.mk all |" ECHO "=================================================" :VScmd %COMSPEC% /k ""%VSPATH%\vcvarsall.bat"" amd64 | cs |
- ws2_32.lib과 같이 추가로 라이브러리 등을 로드 하는 경우, 환경 변수에 위와 같이 추가
- Visual Studio 2015 기준으로 경로를 지정하였기 때문에 다른 버전인 경우, VSPATH 환경 변수 수정
- 위의 배치 파일은 사전 세팅이기 때문에 실행 후, nmake 커맨드를 직접 입력해줘야 함(echo로 출력된 부분 참고)
- 또 다른 배치 파일 샘플 참고(OpenSSL_Install 다운로드) : https://blog.minivet.kr/?p=269
sample.mk : windows의 make 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | .SUFFIXES : .c MAKEFILE = ssl_minivet.mk SOURCE1 = ssl_server.c SOURCE2 = ssl_client.c SOURCE3 = ssl_pem.c MAKE = nmake -f $(MAKEFILE) CC = cl.exe CFLAGS = /Ox CFLAGS2 = /MD TARGET1 = ssl_server TARGET2 = ssl_client TARGET3 = ssl_pem $(TARGET1): ECHO "------------------------------------" ECHO [Complie] Make $(TARGET1) $(CC) $(SOURCE1) $(CFLAGS) $(CFLAGS2) ECHO [OK] Make $(TARGET1) ECHO "------------------------------------" $(TARGET2): ECHO "------------------------------------" ECHO [Complie] Make $(TARGET2) $(CC) $(SOURCE2) $(CFLAGS) $(CFLAGS2) ECHO [OK] Make $(TARGET2) ECHO "------------------------------------" $(TARGET3): ECHO "------------------------------------" ECHO [Complie] Make $(TARGET3) $(CC) $(SOURCE3) $(CFLAGS) $(CFLAGS2) ECHO [OK] Make $(TARGET3) ECHO "------------------------------------" clean: ECHO "------------------------------------" DEL $(TARGET1) DEL $(TARGET2) DEL $(TARGET3) ECHO "------------------------------------" new: $(MAKE) clean $(MAKE) all: $(MAKE) clean $(MAKE) $(TARGET1) $(MAKE) $(TARGET2) $(MAKE) $(TARGET3) | cs |
- Linux의 Makefile 양식과 비슷 : https://cognitivewaves.wordpress.com/makefiles-windows/
- nmake 작성 튜토리얼 : http://nmake.alcatel-lucent.com/tutorial/s2.html
- cl.exe의 추가 옵션 참고 : http://tribal1012.tistory.com/214?category=659736
※ 위의 샘플 파일들은 Windows Visual Studio 2015에서 OpenSSL 라이브러리를 사용하여 서버와 클라이언트를 컴파일하는데 사용했음
'Programming > C' 카테고리의 다른 글
OLE read, write API (0) | 2018.07.27 |
---|---|
[Socket] Socketpair 및 sendmsg, recvmsg (0) | 2018.07.20 |
Windows cl.exe option (0) | 2018.03.21 |
SSL Programming Tutorial (2) | 2018.03.18 |
C++ virtual과 &(참조 포인터) 관련 삽질방지 (1) | 2018.02.28 |
댓글