Closed bneveu closed 3 years ago
Je suppose qu'il faut plutôt fixer PKG_CONFIG_PATH ainsi:
export PKG_CONFIG_PATH=/home/bertrand/ibex/ibex-develop/ibex-lib/build/share/pkgconfig
PS: dans les conventions cmake, je crois qu'il est déconseillé d'utiliser le répertoire build comme répertoire d'installation. (on peut décider par exemple de supprimer build une fois le programme installé)
Est-ce que le dossier /home/bertrand/ibex/ibex-develop/ibex-lib/build
contient le fichier ibex.h
?
Si tu as la commande tree est-ce que tu peux poster le résultat de tree -L 2 /home/bertrand/ibex/ibex-develop/ibex-lib/build
? Sinon le résultat de ls -l /home/bertrand/ibex/ibex-develop/ibex-lib/build
devrait suffire.
Note: Installer Ibex dans le répertoire de build (-DCMAKE_INSTALL_PREFIX=.
) me semble être assez 'dangereux'. Et est peut être la source de l'erreur que tu obtiens.
Cependant, j'ai moi-même des soucis pour compiler les exemples avec cmake, voir https://github.com/ibex-team/ibex-lib/issues/493
En attendant que Cyril règle le problème, je l'ai contourné en ajoutant moi-même (à la main) temporairement les chemins manquant dans la variable LIBS du makefile:
LIBS:= $(shell pkg-config --libs ibex) -L[...]/ibex/ibex-lib/__build__/3rd/lib -L[...]/ibex/ibex-lib/build/lib
Remplace [...] par le bon chemin chez toi.
Il n'y a pas de ibex.h dans /home/bertrand/ibex/ibex-develop/ibex-lib/build. Il y a un ibex.pc voici le résultat de tree tree -L 2 /home/bertrand/ibex/ibex-develop/ibex-lib/build /home/bertrand/ibex/ibex-develop/ibex-lib/build ├── bin │ ├── ibexopt │ └── ibexsolve ├── CMakeCache.txt ├── CMakeFiles │ ├── 3.5.1 │ ├── check.dir │ ├── CheckTypeSize │ ├── cmake.check_cache │ ├── CMakeDirectoryInformation.cmake │ ├── CMakeError.log │ ├── CMakeOutput.log │ ├── CMakeRuleHashes.txt │ ├── CMakeTmp │ ├── ContinuousBuild.dir │ ├── ContinuousConfigure.dir │ ├── ContinuousCoverage.dir │ ├── Continuous.dir │ ├── ContinuousMemCheck.dir │ ├── ContinuousStart.dir │ ├── ContinuousSubmit.dir │ ├── ContinuousTest.dir │ ├── ContinuousUpdate.dir │ ├── ExperimentalBuild.dir │ ├── ExperimentalConfigure.dir │ ├── ExperimentalCoverage.dir │ ├── Experimental.dir │ ├── ExperimentalMemCheck.dir │ ├── ExperimentalStart.dir │ ├── ExperimentalSubmit.dir │ ├── ExperimentalTest.dir │ ├── ExperimentalUpdate.dir │ ├── feature_tests.bin │ ├── feature_tests.c │ ├── feature_tests.cxx │ ├── Makefile2 │ ├── Makefile.cmake │ ├── NightlyBuild.dir │ ├── NightlyConfigure.dir │ ├── NightlyCoverage.dir │ ├── Nightly.dir │ ├── NightlyMemCheck.dir │ ├── NightlyMemoryCheck.dir │ ├── NightlyStart.dir │ ├── NightlySubmit.dir │ ├── NightlyTest.dir │ ├── NightlyUpdate.dir │ ├── progress.marks │ ├── TargetDirectories.txt │ ├── TestEndianess.bin │ └── uninstall.dir ├── cmake_install.cmake ├── cmake_uninstall.cmake ├── CPackConfig.cmake ├── CPackSourceConfig.cmake ├── CTestTestfile.cmake ├── DartConfiguration.tcl ├── ibex.pc ├── interval_lib_wrapper │ ├── CMakeFiles │ ├── cmake_install.cmake │ ├── filib │ ├── gaol │ └── Makefile ├── lib │ └── libsoplex.a ├── lp_lib_wrapper │ ├── clp │ ├── CMakeFiles │ ├── cmake_install.cmake │ ├── Makefile │ └── soplex ├── Makefile ├── soplex_update_githash.cmake ├── src │ ├── arithmetic │ ├── bin │ ├── bisector │ ├── cell │ ├── CMakeFiles │ ├── cmake_install.cmake │ ├── combinatorial │ ├── contractor │ ├── data │ ├── function │ ├── ibex-config.cmake │ ├── ibex-config-version.cmake │ ├── ibex.h │ ├── ibex_Setting.h │ ├── libibex.a │ ├── loup │ ├── Makefile │ ├── numeric │ ├── optim │ ├── parser │ ├── predicate │ ├── set │ ├── solver │ ├── strategy │ ├── symbolic │ ├── system │ └── tools ├── Testing │ └── Temporary └── tests ├── CMakeFiles ├── cmake_install.cmake ├── CTestTestfile.cmake └── Makefile
69 directories, 40 files
Est-ce que tu as bien exécuté la commande make install
pour installer les fichiers ?
Je réitère ma recommandation de ne pas utiliser le répertoire de build comme répertoire d'installation. Trouvé dans un bug report sur le Git de CMake (https://gitlab.kitware.com/cmake/cmake/-/issues/19322):
CMAKE_INSTALL_PREFIX
should not be set toCMAKE_BINARY_DIR
(c'est ce que tu fais en passant DCMAKE_INSTALL_PREFIX=.
à cmake)
J'avais oublié make install mais après le make install , il ne trouve pas gaol (même problème que celui signalé par Gilles #493 )
make optimizer05 g++ -I/home/bertrand/ibex/ibex-develop/ibex-lib/build/include -I/home/bertrand/ibex/ibex-develop/ibex-lib/build/include/ibex -I/home/bertrand/ibex/ibex-develop/ibex-lib/build/include/ibex/3rd -I/usr/include/coin -O3 -DNDEBUG -std=c++11 -DIBEX_BENCHS_DIR=\"../benchs/solver\" -U__STRICT_ANSI__ -o optimizer05 optimizer05.cpp -L/home/bertrand/ibex/ibex-develop/ibex-lib/build/lib -L/home/bertrand/ibex/ibex-develop/ibex-lib/build/lib/3rd -libex -lgaol -lgdtoa -lultim /usr/lib/x86_64-linux-gnu/libClp.so /usr/lib/x86_64-linux-gnu/libCoinUtils.so /usr/lib/x86_64-linux-gnu/libbz2.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/liblapack.so /usr/lib/libblas.so /usr/lib/x86_64-linux-gnu/libm.so
/usr/bin/ld : ne peut trouver -lgaol /usr/bin/ld : ne peut trouver -lgdtoa /usr/bin/ld : ne peut trouver -lultim collect2: error: ld returned 1 exit status makefile:24 : la recette pour la cible « optimizer05 » a échouée make: *** [optimizer05] Erreur 1
Ok je clos ce ticket, le problème est maintenant similaire à #493 qui est train d'être résolu
Je confirme qu'il est résolu
Je n'arrive pas à compiler un fichier dans examples. J'ai utilisé le makefile dans examples. ibex est installé localement dans /home/bertrand/ibex/ibex-develop/ibex-lib/build cmake -DLP_LIB=clp -DCLP_DIR=/usr/lib/x86_64-linux-gnu -DCOIN_DIR=/usr/lib/x86_64-linux-gnu -DCMAKE_INSTALL_PREFIX=.
make ne trouve pas ibex.h echo $PKG_CONFIG_PATH /home/bertrand/ibex/ibex-develop/ibex-lib/build
make optimizer05 g++ -I/home/bertrand/ibex/ibex-develop/ibex-lib/build/include -I/home/bertrand/ibex/ibex-develop/ibex-lib/build/include/ibex -I/home/bertrand/ibex/ibex-develop/ibex-lib/build/include/ibex/3rd -I/usr/include/coin -O3 -DNDEBUG -std=c++11 -DIBEX_BENCHS_DIR=\"../benchs/solver\" -U__STRICT_ANSI__ -o optimizer05 optimizer05.cpp -L/home/bertrand/ibex/ibex-develop/ibex-lib/build/lib -L/home/bertrand/ibex/ibex-develop/ibex-lib/build/lib/3rd -libex -lgaol -lgdtoa -lultim /usr/lib/x86_64-linux-gnu/libClp.so /usr/lib/x86_64-linux-gnu/libCoinUtils.so /usr/lib/x86_64-linux-gnu/libbz2.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/liblapack.so /usr/lib/libblas.so /usr/lib/x86_64-linux-gnu/libm.so optimizer05.cpp:12:18: fatal error: ibex.h: Aucun fichier ou dossier de ce type compilation terminated.