2015-12-01 11 views
5

quando si cerca di utilizzare la nuova clang con Visual Codegen nel mio progetto (Visual Studio 2015 Update 1), sto diventando seguente errore:Visual Studio 2015 Update 1, errore di clang

clang.exe : error : cannot specify -o when generating multiple output files 

Questa è solo una nuova progetto creato con principale autogenerato.

Davvero non so cosa fare al riguardo.

Qualsiasi aiuto apprezzato.

+0

Ebbene, l'opzione '-o' indica il nome del file di output. Il messaggio di errore indica che clang pensa di dover generare * più * file di output; perché? – DevSolar

+0

@DevSolar Dio solo sa perché clang pensa che debba produrre più file. – Artur

+0

Come appare la riga di comando? – DevSolar

risposta

6

Non è molto chiaro cosa si sta facendo, ma sembra ovvio che non si stia utilizzando uno dei modelli di progetto Clang nel nodo Cross Platform. Riesco a riprodurre il problema utilizzando il modello di progetto Win32> Win32 e cambiando la selezione del set di strumenti della piattaforma del progetto su "Clang 3.7".

Che non funziona, flub completamente la funzione di intestazione precompilata. È in qualche modo convinto che è necessario compilare stdafx.h. Non solo una volta, lo passa il compilatore due volte. Il che rende Clang Barf con questo messaggio di errore, accetterà solo un file alla volta. Inoltre non sa come sfruttare il supporto PCH di Clang, nessun segno dell'opzione -emit-pch richiesta.

Avrete bisogno di andare avanti disattivando la funzione. Progetto> Proprietà> C/C++> Intestazioni precompilate> Intestazione precompilata = "Non in uso ...". Seleziona stdafx.cpp e ripeti.

Questo risolve il problema di generazione, l'eseguibile finale in qualche modo sorprendente funziona senza problemi. Dovrebbe essere in qualche modo chiaro che stai usando Clang in uno scenario che non è mai stato testato da Microsoft. Sembra che anche il parser IntelliSense abbia bisogno di molto più lavoro. Supporto Afaik Clang was intended per il targeting di Android e iOS, la versione corrente è di qualità alfa.

+0

Ciao, grazie per la tua risposta. Nell'ultimo aggiornamento, clang è stato aggiunto al target non solo Android e iOS – Artur

+3

Hmya, se solo lo avessero effettivamente testato. Basta seguire la soluzione alternativa per risolvere questo problema. –

+0

G-rea-t! Grazie fratello! Incredibile come loro (MS e VS) potrebbero permettere che ciò accada. Un-frikkin'-credibile. – Artur

1

Proprio come aggiunta alla risposta accettata, se il problema persiste anche dopo aver impostato Precompiled Header = "Not using...". L'altro problema potrebbe essere un valore errato nel campo Object File Name.

Questo campo può essere trovato sotto: Progetto> Nome Proprietà> C/C++> Generale> File Object = $(IntDir)%(filename).obj

Nota: originariamente scoperta di questa soluzione qui: http://www.progtown.com/topic2009949-clang

Problemi correlati