Wenn wir ein C-Programm kompilieren, wird die Ausgabe in a.out gespeichert. Wie können wir die kompilierte Ausgabe in eine andere Datei umleiten?Ermitteln des ausführbaren C-Namens
Antwort
-ofilename
wird filename
statt a.out
machen.
Laut Handbuch:
-o <file> Place the output into <file>
Die meisten C-Compiler bieten die -o
Option für diese, wie zB:
gcc -o gentext gentext.c
cc -o mainprog -Llib -lmymath firstbit.c secondbit.o
xlc -o coredump coredump.c
In Unix, wo C entstand aus, sind C-Programme in der Regel kompilierte Modul -by-Modul, und dann werden die kompilierten Module in eine ausführbare Datei verknüpft. Für ein Projekt, das foo.c
und bar.c
von Modulen besteht, würden die Befehle so aussehen:
cc -c foo.c
cc -c bar.c
cc -o myprog foo.o bar.o
(Mit -c, die Quelldatei mit der Endung der Ausgabedatei mit .o ersetzt wird.)
Dadurch können Sie auch nur die Module neu kompilieren, die sich geändert haben, was bei großen Programmen eine große Zeitersparnis bedeuten kann, aber auch ziemlich schwierig werden kann. (. Dieser Teil in der Regel automatisiert make
verwenden)
Für ein Einzelmodul-Programm gibt es nicht wirklich jeden Punkt in dem ersten Compilierung auf eine .o-Datei, und dann die Verknüpfung, so dass ein einziger Befehl genügt:
cc -o foo foo.c
Für Einzelmodul-Programme ist es üblich, das resultierende ausführbare Programm genauso wie die C-Quelldatei ohne das Suffix .c aufzurufen. Für Programme mit mehreren Modulen gibt es keine feste Vorgabe, ob die Ausgabe nach der Datei mit der Hauptfunktion benannt wird oder nicht, so dass Sie frei erfinden können, was immer Ihnen gefällt.
Compile mit:
cc -o <opfilename> <filename.c>
Execute:
./<opfilename>
- 1. Ermitteln des Speicherortes der ausführbaren JVM-Datei zur Laufzeit
- 2. Ermitteln des "System Load"
- 3. Ermitteln des Adressbereichs des Datensegments
- 4. Ermitteln des Computernamens des Kunden
- 5. Ermitteln des verfügbaren Videospeichers
- 6. Ermitteln des Anwendungsneufokusereignisses
- 7. Ermitteln des Erweiterungstyps mithilfe des Image-Streams
- 8. Ermitteln des Typs des Klassentypparameters Typescipt
- 9. NodeJS: Ermitteln des aktuellen Arbeitsverzeichnisses des Benutzers
- 10. Ermitteln des angehaltenen Zustands des Quarzauslösers?
- 11. Ermitteln des Ergebnistyps in OnException des Controllers
- 12. Ermitteln des Dateityps mithilfe des Dialogfelds "Elektron"
- 13. Ermitteln iPhone Land des Benutzers
- 14. Ermitteln des Farbraums mit openCV
- 15. Ermitteln des Klassennamens von SVGAnimatedString
- 16. Android: Ermitteln des aktuellen Audiokanals
- 17. Ermitteln des Dateityps eines Bildes
- 18. Silverlight: Ermitteln des übergeordneten TreeViewItem?
- 19. Ermitteln PID des beendeten Prozesses
- 20. Speicherlayout der ausführbaren Datei
- 21. Abrufen des absoluten Pfads der ausführbaren Datei mit C#?
- 22. Name der ausführbaren Anwendung unterscheidet sich von vshost ausführbaren Namen
- 23. Ermitteln des physischen Pfads einer ISAPI-DLL
- 24. Ermitteln des varchar-Inhalts in nvarchar-Spalten
- 25. Ermitteln des Debug-Modus in verwaltetem C++
- 26. Ermitteln der Gesamtgröße des SVN-Verzeichnisses/Trunks
- 27. Ermitteln des Fensters/der Bildschirmgröße der Anwendung
- 28. Ermitteln des Namens der Elternklasse mit Reflection
- 29. Ermitteln des aktiven Seitenobjekts in Typo3
- 30. Ermitteln des 'aktiven' Changesets mit Mercurial?
gcc source.c -o Name – EsmaeelE