Mi sono imbattuto in ciò che segue e mi chiedo quali implicazioni avrà sul mio ambiente cygwin/gnu dovrei usare qualcosa di diverso da -o per denominare l'output di una compilazione? È stato adottato un nuovo standard e gli altri compilatori vi aderiscono?Perché -o un candidato per l'eliminazione dal compilatore e dal linker Microsoft?
Quale sarebbe la motivazione per rimuovere -o?
DOS> tipo compile.bat
cl.exe -D YY_MAIN = 1 lex.yy.c libfl.obj -o pippo
DOS> compilare
cl.exe -D YY_MAIN=1 lex.yy.c libfl.obj -o foobar
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
lex.yy.c
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
/out:lex.yy.exe
/out:foobar.exe
lex.yy.obj
libfl.obj
cl: avviso riga di comando D9035: l'opzione 'o' è stata deprecata e verrà rimossa in una versione futura
Su data: Come la risposta seguente è cercando di rendere intenzionalmente più di una frattura tra Windows e UNIX? Spero di no. Spero che manchi qualche nuova convenzione adottata da tutti i compilatori là fuori.
Ho l'opzione -o seppellita profondamente all'interno di una struttura piuttosto complessa per le build cross-platform. L'esempio era di farla bollire nel modo più semplice possibile. – ojblass
Vedo - questo fa schifo allora ...Tuttavia, potrebbe esserci un lato positivo (o, piuttosto, un lato leggermente meno scuro) - "sarà rimosso in una versione futura" potrebbe significare @ VS2025, e quindi potrebbe non averne più bisogno ... –
Molto tardi, ma immagino che '-o' sia stato deprecato quando è stato introdotto' -O' per le ottimizzazioni, probabilmente in un momento in cui le opzioni del compilatore erano insensibili al maiuscolo/minuscolo. Sono sensibili alla distinzione tra maiuscole e minuscole ora, quindi è necessario tornare indietro nella cronologia del compilatore, possibilmente di nuovo nei giorni DOS ... – andlabs