에 의해 종료되어 있는지 확인해야 주로 "include"및/또는 "if"지시문에 호환되지 않는 구문이 있기 때문입니다. MS nmake를 사용해야합니다! 지시어 접두사. 예를 들어,! if,! include 등 ...
별도의 매크로를 사용할 수 있으면 속일 수 있습니다.
- MS NMAKE 기본 매크로에 대한 TOOLS.INI 파일을 읽습니다 : 여기 내가 지금까지 다음 사항을 관찰하여 두 GNU가하고 MS의 nmake를 호환 메이크 파일을 만들기위한 찾을 수있는 가장 좋은 방법을 제시한다.
- MS 제품군은 개체 파일 확장명으로 .obj를 사용합니다.
- GNU make는 MAKEFILES 환경 변수에 정의 된 파일을 읽습니다.
- GNU 제품군은 .o를 오브젝트 파일 확장명으로 사용합니다.
- GNU make는 대상에 대한 실행 확장자 .exe를 제공 할 필요가 없습니다.
참고 : 다음은 MS Visual Studio 2015 및 MINGW32를 사용하여 테스트되었습니다.
1 단계 : 다음 DOS 배치 파일을 만들고 CMD 프롬프트가 호출 될 때마다 실행되도록하십시오.
set MAKEFILES=TOOLS.gcc
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
2 단계 : 아래와 같이 작업 디렉토리 아래 TOOLS.INI 파일을 만들기 :
[NMAKE]
LDLIBS =
CDEBUG = /Zi
LDEBUG = /debug:full
WDFLAGS = /wd4996 /wd4774 /wd4018 /wd4710 /wd4820
CFLAGS = /nologo $(CDEBUG) /EHsc /Wall $(WDFLAGS)
LDFLAGS = /nologo $(LDEBUG)
RM = del /F /Q
LINK = "$(VCINSTALLDIR)bin\link" $(LDFLAGS)
CP = copy
CC = cl
CPP = $(CC) /P
X = .exe
O = .obj
.obj.exe:
$(LINK) $** $(LOADLIBES) $(LDLIBS) /Out:[email protected]
3 단계 (이 설정 파일은 라이브러리 제외 프로젝트 종속성의 독립적 인)하십시오 도구 만들기 ((아래 참고 $ 당신의 메이크 파일을 편집
LD_LIBS =
LDLIBS =
CDEBUG = -g
LDEBUG = -g
CFLAGS = $(CDEBUG)
LDFLAGS = $(LDEBUG)
RM = rm -f
LINK = gcc $(LDFLAGS)
CP = cp
CC = gcc
CPP = $(CC) -E
X =
O = .o
%: %.o
$(LINK) $^ $(LOADLIBES) $(LDLIBS) -o [email protected]
4 단계 (이 설정 파일은 라이브러리 제외 프로젝트 종속성과 무관) : 아래와 같이 작업 디렉토리 아래에 .gcc X)와 $ (O)).
SHELL = /usr/bin/sh
app: app1$(X) app2$(X)
app1$(X): app1$(O)
app2$(X): app2$(O)
clean:
$(RM) *.exe *.o *.obj *.ilk *.pdb *.tmp *.i *~
5 단계 : GNU 만들 즐길 MS는 같은 메이크
$ nmake
$ make clean
$ nmake clean
$ make
당신은 만들거나 GNU는 Windows 시스템에 만들 얻을 수 있습니다와 NMAKE. –
크로스 플랫폼 프로젝트의 경우 cmake (http://www.cmake.org)를 추천 할 수 있습니다. –
나는 이미 cmake에 대해 읽었습니다. 그러나 우리가 nmake를 사용하기로되어있는 대학에서 운동을하기 위해서는이 것이 필요합니다. – j0ker