2011-01-14 6 views
2

Ich weiß, dass einige Linker eine Begrenzung haben, wie viele Objektdateien in der Befehlszeile erlaubt sind. Was ist Visual Studio? Wenn Sie diese Zahl überschreiten, können Sie bei einigen Linkern auch eine Datei mit dem Namen aller Objektdateien angeben, die Sie nur als Argument übergeben. Hier ist ein Beispiel, Ihnen zu zeigen, was ich meine:Wie hoch ist der Link-Datei-Grenzwert, der die link.exe von Visual Studio verwendet?

some_linker file1.o file2.o ... file9000.o -out=some.lib 

Es wäre 9000 für diesen Linker zu viel ist, aber es ermöglicht Ihnen den Weg zu den Objekten in einer anderen Datei zu schreiben, example.txt:

file1.o 
file2.o 
... 
file9000.o 

Und der Linker Anruf wird:

some_linker -input=example.txt -out=some.lib 

Wie verhält sich Visual Studio in dieser Situation? Lässt es so etwas zu?

Antwort

3

Die maximale Anzahl von Argumenten scheint in diesem Teil der documentation nicht angegeben zu sein. Ich bin nicht sicher, ob dies an anderer Stelle zur Verfügung gestellt wird, aber ich persönlich habe es nicht gesehen.

Jedoch ermöglicht link.exe können Sie eine Textdatei angeben, die den Namen aller Objektdateien enthält, die es eine "Befehlsdatei" nennt. Gemäß den documentation Sie eine Befehlsdatei angeben, indem den Dateinamen mit einem at-Zeichen vorangestellt wird:

LINK @commandfile 

Die Argumente in der Befehlsdatei können entweder durch Leerzeichen oder Tabulatoren getrennt werden (wie in der Befehlszeile) und durch Neue-Zeile- Figuren.

+0

Die Befehlszeilenlänge ist 32 KB, 8 KB bei Ausführung von cmd.exe. Eine mit @ übergebene Datei wird als Antwortdatei bezeichnet. Wie wird der Linker von der IDE aus ausgeführt? –

Verwandte Themen