2017-09-20 11 views
0

다른 플랫폼 툴셋으로 프로그램을 자동으로 컴파일해야합니다. 컴파일은 cl.exe를 사용하여 수행하고 link.exe과 같이됩니다 :다른 툴셋으로 CL.exe를 사용하여 컴파일

Unknown Option: /PlatformToolset

: I 스위치 /PlatformToolset=vc140xp 단, CL.EXE 그것을 reconginze하지 않는 것을 사용하고

cl.exe file.c /GS- /PlatformToolset=vc140xp /analyze- /W3 /Gy /Zc:wchar_t /Gm- /Od /Zc:inline /fp:precise /D \"WIN32\" /D \"_WINDOWS\" /D \"_UNICODE\" /D \"UNICODE\" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MD /Fa\"\" /EHsc /nologo /Fo\"\" /Fp\"\" /diagnostics:classic /link %link_additional% /ENTRY:wWinMain /SUBSYSTEM:WINDOWS /MANIFEST:EMBED /NXCOMPAT /DYNAMICBASE \"kernel32.lib\" \"user32.lib\" \"gdi32.lib\" \"winspool.lib\" \"comdlg32.lib\" \"advapi32.lib\" \"shell32.lib\" \"ole32.lib\" \"oleaut32.lib\" \"uuid.lib\" \"odbc32.lib\" \"odbccp32.lib\" /DEBUG:NONE /MACHINE:%arch% /OPT:REF /SAFESEH /INCREMENTAL:NO /SUBSYSTEM:WINDOWS /MANIFESTUAC:\"level = 'asInvoker' uiAccess = 'false'\" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /TLBID:1\ 

, 내가 오류가 발생

msbuild 및 vcproj없이 cl.exe를 사용하여 도구 집합을 변경할 수있는 방법이 있습니까?

+1

'cl .exe'는 툴셋의 일부입니다. 일단 당신이 여러 개의'cl.exe's 중 하나를 시작하면 당신은 이미 PATH에 하나를 가지고 툴셋을 선택했을 것입니다. –

+0

@Bo Persson은 vcvarsall의 명령 줄에서 도구 세트를 설정할 수 있습니까? 또는 vcvarsall이 도구 집합의 일부입니까? – YakibutaRamen

+0

IDE에서 빌드하는 것을 선호하므로 커맨드 라인 빌드를 많이 실험하지 않았습니다. 미안합니다. –

답변

1

사람이 필요로 할 때마다, 나는이 문제를 해결할 수있었습니다. 나는 CL.EXE이 옵션을 추가 :

/D \"_USING_V110_SDK71_\" 

를 또한 내가이 옵션 수정 : 응용 프로그램이 윈도우 XP에 성공적으로 실행 된 후

/SUBSYSTEM:WINDOWS 

/SUBSYSTEM:WINDOWS,5.01 

에 있습니다. exe에서 crt를 많이 사용하는 경우 몇 가지 문제가 발생할 수 있습니다. exe에서는 Tls 콜백을 정의하기 위해 CRT 만 필요합니다. CRT가 없으면 작동하지 않습니다. 어쩌면 이것이 내가이 컴퓨터에서 작동하는 이유입니다.