ΕΕΛ/ΛΑΚ - Λίστες Ταχυδρομείου

Re: Gcc 4.6 (Ubuntu)

Στις 3 Οκτωβρίου 2011 12:27 μ.μ., ο χρήστης Alexios Zavras
<zvr+foss [ at ] zvr [ dot ] gr> έγραψε:
> Nick Kossifidis wrote [edited]:
>> Το θέμα είναι το όνομα της μεταβλητής ή ότι μέχρι τώρα έβαζα τα
>> συγκεκριμένα arguments στην αρχή της εντολής και δούλευε και στον 4.6
>> που δοκίμασα δε δουλεύει ? Το θες αλλιώς ? Το
>>       gcc $CFLAGS $LDFLAGS -c foo.c -o bar.o
>> δούλευε πριν και τώρα δουλεύει μόνο το
>>       gcc -c foo.c -o bar.o $CFLAGS $LDFLAGS
>
> εγώ πιστεύω ότι θα δουλεύει και το
>        gcc $CFLAGS -c -o bar.o foo.c $LDFLAGS
> :-)
>

Ναι αυτό είναι το σωστό γενικά και αυτό θα δεις στα Makefiles, απλά
βαριέμαι και τα έβαλα όλα μαζί πακέτο σε ένα bash script να
ξεμπερδεύω. Θα ασχοληθώ με automake/autoconf αφού ξεμπερδέψω με τα
υπόλοιπα.

> βέβαια η λογική του να έχεις "-c" (just compile; don't link)
> μαζί με "$LDFLAGS" (linker options) μου διαφεύγει...
>

Ναι δίκιο, το linking stage έρχεται μετά απλά (και το έχω δει και σε
Makefiles αυτό) τα flags τα βάζουν γενικώς παντού, πες από συνήθεια :P
Ποιο συγκεκριμένα το scriptάκι είναι κάπως έτσι...

CFLAGS=`pkg-config --cflags --libs openssl libcurl`
CFLAGS="$CFLAGS -fPIC -DΒΑΝΑΝΑ"

OBJS="test1 test2 test3"

για κάθε OBJ κάνω

gcc $CFLAGS -c $(OBJ).c -o $(OBJ).o

και μετά

gcc $CFLAGS -shared -Wl,-soname,libtest.so.0 -o libtest.so.0.1 $OBJS

Ε για να δουλέψει στο 4.6 έπρεπε να βάλω τα CFLAGS στο τέλος της
εντολής, απλά δεν το ανέλυσα γιατί το όλο σκηνικό ξεκίνησε στη βάση
ότι αυτό το πράγμα μέχρι τώρα έτρεχε κανονικά (άρα προφανώς το linking
δούλευε).

> --
> -- zvr --
> --  +---------------------------+       Alexios Zavras (-zvr-)
>    | H eytyxia den exei enoxes |       zvr [ at ] zvr [ dot ] gr
>    +-----------------------zvr-+
>



-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick

απαντήσεις

αναφορές

πλοήγηση μηνυμάτων