Information concernant le compilateur gcc

Le site de référence de GCC.
Documentation sur GCC depuis le site : doc.ubuntu-fr.org

Pour générer une librairie .so (équivalente aux .dll sous Windows), les fichiers en langage C devront être compiler ainsi :
gcc -shared -o FILE.so -fPIC FILE.c
ou   gcc -shared -Wl,-soname,FILE -o FILE.so -fPIC FILE.c
FILE doit être remplacé par le bon fichier.

Pour que cela fonctionne, il faut indiquer au compilateur où se trouve la librairie "Python.h".
Un manière directe est de compiler ainsi :
gcc -I /usr/include/python3.5 -shared -o FILE.so -fPIC FILE.c
"-I /usr/include/python3.5" indique où trouver la librairie "Python.h"

On peut indiquer une fois pour toute où se trouve la librairie "Python.h"
Pour ajouter des répertoires de "include" (.h) :
C_INCLUDE_PATH="/usr/include/python3.5"
export C_INCLUDE_PATH


Pour du C++, il faut :
CPLUS_INCLUDE_PATH=/opt/gdbm-1.8.3/include
export CPLUS_INCLUDE_PATH

Pour des librairies :
LIBRARY_PATH=/opt/gdbm-1.8.3/lib
export LIBRARY_PATH

This directory will be searched after any directories specified on the command line with the option -L,
and before the standard default directories (such as ‘/usr/local/lib’ and ‘/usr/lib’).
c.f. : http://www.network-theory.co.uk/docs/gccintro/gccintro_23.html

`gcc -print-prog-name=cc1` -v
Pour afficher la liste des répertoires utilisés par gcc. Reprenez le contrôle avec ctrl+C

Par défaut, gcc cherche les headers dans :
/usr/local/include/
/usr/include/

Par défaut, gcc cherche les librairies dans :
/usr/local/lib/
/usr/lib/

L'indexe des options de la commande gcc.
Diverses options de la commande gcc :
-shared : produit un fichier qui pourra être lié (linké) à un exécutable.
-FPIC : pour la compilation, va avec "-shared"
utile pour certaines machine, pour générer du code qui peut être lié dynamiquement.
-o FILE.so indique de placer le résultat de la compilation dans le fichier FILE.so
-Wall active différents "Warnings"


Plan du Site : Home   arrow   Python   arrow   python_code.html   arrow   gcc.html ( = http://www.juggling.ch/gisin/python/gcc.html )


Page mise à jour le 8 février 2018 par Bernard Gisin     ( Envoyer un e-mail )
Hébergement par : www.infomaniak.ch