Σελίδα 1 από 1

Eντολή compile

Δημοσιεύτηκε: Παρ Μαρ 25, 2011 5:32 pm
από jimDim
C: gcc -std=c99 -O2 -DCONTEST -s -static -lm

Ξέρει κανείς τι ακριβώς είναι το "-Ο2" ή το "-DCONTEST" ή ακόμη "-s -static -Im".
Δεν πιστεύω να δημιουργηθεί πρόβλημα με αυτές τισ ρυθμίσεις,ούτε να χρειαστεί κάτι ιδιαίτερο, έτσι. Απλώς τις παραβλέπω, σωστά ?? :?:

Re: Eντολή compile

Δημοσιεύτηκε: Σάβ Μαρ 26, 2011 3:21 am
από thetrojan01
-std=c99: "compiler, χρησιμοποίησε σε παρακαλώ το πρότυπο C99..."
-O2: "κάνε βελτιστοποιήσεις όσον αφορά τον χρόνο εκτέλεσης, έλα, ξέρω ότι μπορείς!"
-DCONTEST: "αυτό το παναθεματισμένο το δελφινάκι θέλει να έχω κάνει #define το CONTEST... κάνε το εσύ για μένα please..."
-static:
-static
The HP-UX implementation of setlocale in libc has a dependency on
libdld.sl. There isn't an archive version of libdld.sl. Thus,
when the -static option is specified, special link options are
needed to resolve this dependency.

On HP-UX 10 and later, the GCC driver adds the necessary options to
link with libdld.sl when the -static option is specified. This
causes the resulting binary to be dynamic. On the 64-bit port, the
linkers generate dynamic binaries by default in any case. The
-nolibdld option can be used to prevent the GCC driver from adding
these link options.
-lm: link with the math.h library...
-s: stripάρει το εκτελέσιμο, that is, it removes the symbol table and relocation information from the executable

Με λίγα λόγια: Απολύτως τίποτα που να σε απασχολεί ιδιαίτερα.

Re: Eντολή compile

Δημοσιεύτηκε: Σάβ Μαρ 26, 2011 4:29 pm
από feedWARd
Το -DCONTEST απλά ορίζει την μεταβλητή CONTEST. Έτσι μπορείς να κάνεις πράγματα όπως αυτό:

Κώδικας: Επιλογή όλων

#ifndef CONTEST
  prinf("%d\n", N);
#else
  fprintf(out, "%d\n", N);
#endif
Έτσι, όταν τρέχεις το πρόγραμμα τοπικά (χωρίς το -DCONTEST) να εμφανίζει την έξοδο στο stdout, ενώ στον server του grader θα γράφει κανονικά στο αρχείο. Αυτά τα #if επιλύονται από τον preprocessor πριν από το compilation, οπότε δεν επηρρεάζουν τον χρόνο εκτέλεσης.

To -lm επιτρέπει την χρήση της math.h αν χρειαστεί.
jimDim έγραψε:Δεν πιστεύω να δημιουργηθεί πρόβλημα με αυτές τισ ρυθμίσεις,ούτε να χρειαστεί κάτι ιδιαίτερο, έτσι. Απλώς τις παραβλέπω, σωστά ?? :?:
Δεν πρόκειται να δημιουργηθεί κανένα πρόβλημα, μην αγχώνεσαι. Αν κάνει compile τοπικά, θα κάνει και όταν το στείλεις στον grader.