Ho lavorato a un progetto in cui stavo usando g ++ per compilare il codice C in file che terminano in .c. Il motivo è che mi è stato detto che g ++ ha messaggi di avvertimento migliori.CMake può usare g ++ per compilare i file C?
Sto passando il processo di compilazione per questo progetto per utilizzare CMake. Ho scoperto che inizialmente CMake voleva usare gcc per compilare i file C. Questo non è riuscito a causa di cose come la dichiarazione delle variabili al momento dell'utilizzo. Così ho cercato di utilizzare g ++ per compilare file C utilizzando l'impostazione
set(CMAKE_C_COMPILER_INIT g++)
nel file CMakeLists.txt. Ma questo si traduce nel messaggio di errore:
#error "The CMAKE_C_COMPILER is set to a C++ compiler"
ho rinominando i miei file .c a cpp per risolvere questo problema che sembra essere il modo più semplice per me, per far funzionare le cose, e forse il modo migliore pure. Ma mi chiedevo se fosse possibile forzare CMake a usare g ++ per compilare i file C.
"La ragione è che mi hanno detto che g ++ ha messaggi di avviso migliori." - E potresti confermarlo? Direi che è molto discutibile, perché (per quanto ne so) entrambi sono solo driver che invocano lo stesso compilatore con argomenti diversi (lingua, include percorsi, libreria standard collegata, ecc.) A parte ciò, g ++ non è un Compilatore C quindi finisci a scrivere C++ molto scarso. – delnan
Se stai scrivendo C, compila con un compilatore C. C e C++ non sono la stessa cosa. – Kusalananda
Hai detto '_Questo non è riuscito a causa di cose come dichiarare le variabili in uso time_'; sembra che tu stia utilizzando GCC in modalità C89, invece che in modalità C99. Prova ad aggiungere '-std = c99' al compilatore C - in qualche modo. –