Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1847 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Installation

  Compiler GCC c'est bien... mais les includes paths ne fonctionnent pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compiler GCC c'est bien... mais les includes paths ne fonctionnent pas

n°1388770
spark
Luc ?
Posté le 30-03-2016 à 15:09:56  profilanswer
 

Hello,  
 
Je me permet de faire un lien vers mon problème que j'ai créé dans la catégorie Programmation, mais qui je pense aura plus de succès ici !
 
http://forum.hardware.fr/hfr/Progr [...] m#t2278595
 
Hello tout le monde !
 
Alors le contexte : Ubuntu Server 14.04 LTS.
 
GCC 4.8.4 :
 

[ spark@genesys: ~ ] $ g++ -E -x c++ - -v  < /dev/null
Using built-in specs.
COLLECT_GCC=g++
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
COLLECT_GCC_OPTIONS='-E' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.8/cc1plus -E -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE - -mtune=generic -march=x86-64 -fstack-protector -Wformat -Wformat-security
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/4.8"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/4.8
 /usr/include/x86_64-linux-gnu/c++/4.8
 /usr/include/c++/4.8/backward
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "<stdin>"
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-E' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
[ spark@genesys: ~ ] $


 
mes includes paths sont à peu près bons.
 
Je compile mon petit gcc avec tout ce qu'il faut :

[ spark@genesys: ~/work/c++/tests/gcc-5.3.0/build ] $ cat configure.run
../configure -v --with-pkgversion='Spark 5.3.0-20160330-r02-Ubuntu-14.04.4' --enable-languages='c,c++' --prefix='/home/spark/gcc' --program-suffix='-5.3' --enable-shared --enable-linker-build-id --without-included-gettext --enable-threads='posix' --with-gxx-include-dir='/home/spark/gcc/include' --enable-nls --with-sysroot='/' --enable-clocale='gnu' --enable-libstdcxx-debug --enable-libstdcxx-time='yes' --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-multilib --disable-werror --with-abi=m64 --with-tune=native --enable-checking=release --with-mpc='/home/spark/gcc' --with-mpfr='/home/spark/gcc' --with-gmp='/home/spark/gcc' --with-isl='/home/spark/gcc' --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --enable-__cxa_atexit --with-fpmath='avx'


Ca compile, c'est magique, c'est beau. Un petit make install et hop, j'ai bien mes executables dans /home/spark/gcc/bin :
 

[ spark@genesys: ~/gcc/bin ] $ ll
total 33776
drwxrwxr-x 2 spark spark    4096 mars  30 11:46 .
drwxrwxr-x 8 spark spark    4096 mars  30 11:46 ..
-rwxr-xr-x 4 spark spark 3499100 mars  30 11:46 c++-5.3
-rwxr-xr-x 1 spark spark 3493702 mars  30 11:46 cpp-5.3
-rwxr-xr-x 4 spark spark 3499100 mars  30 11:46 g++-5.3
-rwxr-xr-x 3 spark spark 3490322 mars  30 11:46 gcc-5.3
-rwxr-xr-x 2 spark spark  139320 mars  30 11:46 gcc-ar-5.3
-rwxr-xr-x 2 spark spark  139224 mars  30 11:46 gcc-nm-5.3
-rwxr-xr-x 2 spark spark  139268 mars  30 11:46 gcc-ranlib-5.3
-rwxr-xr-x 1 spark spark 2402151 mars  30 11:46 gcov-5.3
-rwxr-xr-x 1 spark spark 2282716 mars  30 11:46 gcov-tool-5.3
-rwxr-xr-x 4 spark spark 3499100 mars  30 11:46 x86_64-linux-gnu-c++-5.3
-rwxr-xr-x 4 spark spark 3499100 mars  30 11:46 x86_64-linux-gnu-g++-5.3
-rwxr-xr-x 3 spark spark 3490322 mars  30 11:46 x86_64-linux-gnu-gcc-5.3
-rwxr-xr-x 3 spark spark 3490322 mars  30 11:46 x86_64-linux-gnu-gcc-5.3.0
-rwxr-xr-x 2 spark spark  139320 mars  30 11:46 x86_64-linux-gnu-gcc-ar-5.3
-rwxr-xr-x 2 spark spark  139224 mars  30 11:46 x86_64-linux-gnu-gcc-nm-5.3
-rwxr-xr-x 2 spark spark  139268 mars  30 11:46 x86_64-linux-gnu-gcc-ranlib-5.3
[ spark@genesys: ~/gcc/bin ] $


 
et là, c'est le drame :
 

[ spark@genesys: ~/gcc/bin ] $ g++-5.3 -E -x c++ - -v < /dev/null
Utilisation des specs internes.
COLLECT_GCC=g++-5.3
Cible : x86_64-linux-gnu
Configuré avec: ../configure -v --with-pkgversion='Spark 5.3.0-20160330-r02-Ubuntu-14.04.4' --enable-languages=c,c++ --prefix=/home/spark/gcc --program-suffix=-5.3 --enable-shared --enable-linker-build-id --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/home/spark/gcc/include --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-multilib --disable-werror --with-abi=m64 --with-tune=native --enable-checking=release --with-mpc=/home/spark/gcc --with-mpfr=/home/spark/gcc --with-gmp=/home/spark/gcc --with-isl=/home/spark/gcc --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --enable-__cxa_atexit --with-fpmath=avx : (reconfigured) ../configure -v --with-pkgversion='Spark 5.3.0-20160330-r02-Ubuntu-14.04.4' --enable-languages=c,c++ --prefix=/home/spark/gcc --program-suffix=-5.3 --enable-shared --enable-linker-build-id --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/home/spark/gcc/include --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-multilib --disable-werror --with-abi=m64 --with-tune=native --enable-checking=release --with-mpc=/home/spark/gcc --with-mpfr=/home/spark/gcc --with-gmp=/home/spark/gcc --with-isl=/home/spark/gcc --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --enable-__cxa_atexit --with-fpmath=avx
Modèle de thread: posix
gcc version 5.3.0 (Spark 5.3.0-20160330-r02-Ubuntu-14.04.4)
COLLECT_GCC_OPTIONS='-E' '-v' '-shared-libgcc' '-mtune=native' '-march=x86-64'
 /home/spark/gcc/libexec/gcc/x86_64-linux-gnu/5.3.0/cc1plus -E -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE - --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=ivybridge -march=x86-64
le répertoire « home/spark/gcc/include » est ignoré car inexistant
le répertoire « home/spark/gcc/include/x86_64-linux-gnu » est ignoré car inexistant
le répertoire « home/spark/gcc/include/backward » est ignoré car inexistant
le répertoire « /usr/local/include/x86_64-linux-gnu » est ignoré car inexistant
le répertoire « /home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/../../../../x86_64-linux-gnu/include » est ignoré car inexistant
la recherche pour #include "..." débute ici :
la recherche pour #include <...> débute ici:
 /home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/include
 /usr/local/include
 /home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
Fin de la liste de recherche.
# 1 "<stdin>"
# 1 "<interne>"
# 1 "<ligne-de-commande>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<ligne-de-commande>" 2
# 1 "<stdin>"
COMPILER_PATH=/home/spark/gcc/libexec/gcc/x86_64-linux-gnu/5.3.0/:/home/spark/gcc/libexec/gcc/x86_64-linux-gnu/5.3.0/:/home/spark/gcc/libexec/gcc/x86_64-linux-gnu/:/home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/:/home/spark/gcc/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/:/home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-E' '-v' '-shared-libgcc' '-mtune=native' '-march=x86-64'
[ spark@genesys: ~/gcc/bin ] $


 
Il n'y a pas de "/" devant home/spark/.... :

le répertoire « home/spark/gcc/include » est ignoré car inexistant
le répertoire « home/spark/gcc/include/x86_64-linux-gnu » est ignoré car inexistant
le répertoire « home/spark/gcc/include/backward » est ignoré car inexistant


 
:fou:  :fou:  :fou:  
 
Donc forcément, les includes marchent moins bien  :o  
 
Un peu plus d'informations :


[ spark@genesys: ~/gcc/libexec/gcc/x86_64-linux-gnu/5.3.0 ] $ cc1plus -v
le répertoire « home/spark/gcc/include » est ignoré car inexistant
le répertoire « home/spark/gcc/include/x86_64-linux-gnu » est ignoré car inexistant
le répertoire « home/spark/gcc/include/backward » est ignoré car inexistant
le répertoire « /home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/../../../../x86_64-linux-gnu/include » est ignoré car inexistant
la recherche pour #include "..." débute ici :
la recherche pour #include <...> débute ici:
 /home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/include
 /usr/local/include
 /home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/include-fixed
 /usr/include
Fin de la liste de recherche.
^C
[ spark@genesys: ~/gcc/libexec/gcc/x86_64-linux-gnu/5.3.0 ] $


 
Il faudrait trouver où sont valorisés les chemins dans la compilation de cc1plus ?
 
 
Merci pour votre aide :)


---------------
Un cycle complet sera une série de 100.
mood
Publicité
Posté le 30-03-2016 à 15:09:56  profilanswer
 

n°1388840
spark
Luc ?
Posté le 01-04-2016 à 09:16:20  profilanswer
 


[ spark@genesys: ~/work/c++/tests/gcc-5.3.0/build2 ] $ cat configure.run
../configure -v --with-pkgversion='Spark 5.3.0-20160331-r0-Ubuntu-14.04.4' --enable-languages=c,c++ --with-fpmath=avx --prefix='/home/spark/gcc' --program-suffix='-5.3' --enable-shared --enable-linker-build-id --without-included-gettext --with-system-zlib --enable-threads=posix --enable-nls --enable-clocale=gnu --enable-__cxa_atexit --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-gxx-include-dir=/home/spark/gcc/include --enable-gnu-unique-object --enable-plugin --disable-multilib --disable-werror --with-abi=m64 --with-tune=native --enable-checking=release --with-mpc=/home/spark/gcc --with-mpfr=/home/spark/gcc --with-gmp=/home/spark/gcc --with-isl=/home/spark/gcc --build=x86_64-linux-gnu
[ spark@genesys: ~/work/c++/tests/gcc-5.3.0/build2 ] $


 
And, IT WORKS !!!
 
j'ai bien mes binaires dans /home/sparl/gcc/bin, ma libc++ dans /home/spark/gcc/include, et les bons includes paths
 


[ spark@genesys: ~ ] $ g++ -E -x c++ - -v < /dev/null
Utilisation des specs internes.
COLLECT_GCC=g++
Cible : x86_64-linux-gnu
Configuré avec: ../configure -v --with-pkgversion='Spark 5.3.0-20160331-r0-Ubuntu-14.04.4' --enable-languages=c,c++ --with-fpmath=avx --prefix=/home/spark/gcc --program-suffix=-5.3 --enable-shared --enable-linker-build-id --without-included-gettext --with-system-zlib --enable-threads=posix --enable-nls --enable-clocale=gnu --enable-__cxa_atexit --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-gxx-include-dir=/home/spark/gcc/include --enable-gnu-unique-object --enable-plugin --disable-multilib --disable-werror --with-abi=m64 --with-tune=native --enable-checking=release --with-mpc=/home/spark/gcc --with-mpfr=/home/spark/gcc --with-gmp=/home/spark/gcc --with-isl=/home/spark/gcc --build=x86_64-linux-gnu
Modèle de thread: posix
gcc version 5.3.0 (Spark 5.3.0-20160331-r0-Ubuntu-14.04.4)
COLLECT_GCC_OPTIONS='-E' '-v' '-shared-libgcc' '-mtune=native' '-march=x86-64'
 /home/spark/gcc/libexec/gcc/x86_64-linux-gnu/5.3.0/cc1plus -E -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE - --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=ivybridge -march=x86-64
le répertoire « /usr/local/include/x86_64-linux-gnu » est ignoré car inexistant
le répertoire « /home/spark/gcc/include » est ignoré car présent deux fois
le répertoire « /home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/../../../../x86_64-linux-gnu/include » est ignoré car inexistant
la recherche pour #include "..." débute ici :
la recherche pour #include <...> débute ici:
 /home/spark/gcc/include
 /home/spark/gcc/include/x86_64-linux-gnu
 /home/spark/gcc/include/backward
 /home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/include
 /usr/local/include
 /home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
Fin de la liste de recherche.
# 1 "<stdin>"
# 1 "<interne>"
# 1 "<ligne-de-commande>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<ligne-de-commande>" 2
# 1 "<stdin>"
COMPILER_PATH=/home/spark/gcc/libexec/gcc/x86_64-linux-gnu/5.3.0/:/home/spark/gcc/libexec/gcc/x86_64-linux-gnu/5.3.0/:/home/spark/gcc/libexec/gcc/x86_64-linux-gnu/:/home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/:/home/spark/gcc/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/:/home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/home/spark/gcc/lib/gcc/x86_64-linux-gnu/5.3.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-E' '-v' '-shared-libgcc' '-mtune=native' '-march=x86-64'


 
J'ai bien mon / devant home...
 
Et ca compile !!

Code :
  1. [ spark@genesys: ~/work/c++/perso/nzbee/src ] $ cat main.cpp
  2. #include <iostream>
  3. #include "lib/sqlite3.h"                        // SQLite Library 3.11.1
  4. #include <string>
  5. #include "const.hpp"
  6. #include "main.hpp"
  7. //#include <lib/logs.hpp>
  8. using namespace std;
  9. int main(int agrc, char** argv)
  10. {
  11.   // 1. Initialisation - Parse Command Line
  12.   // 2. Initialize and load working database
  13.   if( sqlite3_initialize() != SQLITE_OK ) return RETURN_DB_ERROR;
  14.   cout << "Hello World !\n";
  15.   cout << "Version SQLite   : " << sqlite3_libversion() << "\n";
  16.   cout << "Compilé avec GCC : " << __VERSION__ << "\n";
  17.   return RETURN_OK;
  18. }


 


Hello World !
Version SQLite   : 3.12.0
Compilé avec GCC : 5.3.0


 
J'ai juste pas mis de --host ni de --target,  
 
Voilà voilà pour ceux que ca intéresserait :jap:


---------------
Un cycle complet sera une série de 100.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Installation

  Compiler GCC c'est bien... mais les includes paths ne fonctionnent pas

 

Sujets relatifs
GCC HOMEBREW personnalisation, comment ajouter une option a GCCServeur RedHat 5.7 Tikanga et install GCC
emacs24 moins bien qu'emacs23 ? => RésoluComment compiler un prog autrement qu'en ligne de commande ?
compiler Linux pour l'adapter à son matériel à t'il encore un sens ?Message d'erreur à la compilation de GCC [Résolu]
[awk, grep, sed et Cie] où commencer pour bien apprendre ?Nginx, C'est bien , quand ca Marche ! (php5-fpm problème)
Besoin d'aide pour compiler Quamachi !Configuration box foireuse pour mon Apache ou bien ? [Résolu]
Plus de sujets relatifs à : Compiler GCC c'est bien... mais les includes paths ne fonctionnent pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR