Il ne signale pas de problèmes avant la compilation. J'ai donc ajouté les variable a la main:
# use proper boost version
set(BOOST_INCLUDEDIR "/usr/include/boost169")
set(BOOST_LIBRARYDIR "/usr/lib64/boost169")
# use proper c++ compiler
set(CMAKE_CXX_COMPILER "/opt/rh/devtoolset-8/root/usr/bin/g++")
set(CMAKE_CXX_FLAGS "-std=c++17")
Et il commence bien la compilation normalement, mais il plante au link avec:
[ 84%] Building CXX object examples/CMakeFiles/exampleFull.dir/exampleFull.cpp.o
Linking CXX executable exampleFull
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: CMakeFiles/exampleFull.dir/exampleFull.cpp.o: undefined reference to symbol 'pthread_rwlock_wrlock@@GLIBC_2.2.5'
//lib64/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [examples/exampleFull] Error 1
J'ai donc du ajouter (google est mon ami):
set(CMAKE_CXX_FLAGS "-std=c++17 -pthread")
Voilà, après tout cela c'est compilé, mais il faudra juste comprendre pourquoi cmake ne signale pas le manque de C++17 et pourquoi j'ai du ajouter -pthread aux flags. Pour boost, on sait que findboost n'est pas une flèche et je ne suis pas étonné d'avoir du ajouter les variables à la main 😄
J'ai compilé vehemence sur la machine µTCA mais j'ai eu un peu de mal et il y aura peut-etre des choses à fixer dans CMAKE.
Evidemment les versions de cmake, boost et gcc sur centos sont trop vieilles mais on a pu installer des versions plus récentes avec les devtoolssets.
Malheureusement cmake ne détecte pas les nouvelles versions et malgré les requirements:
Il ne signale pas de problèmes avant la compilation. J'ai donc ajouté les variable a la main:
Et il commence bien la compilation normalement, mais il plante au link avec:
J'ai donc du ajouter (google est mon ami):
set(CMAKE_CXX_FLAGS "-std=c++17 -pthread")
Voilà, après tout cela c'est compilé, mais il faudra juste comprendre pourquoi cmake ne signale pas le manque de C++17 et pourquoi j'ai du ajouter -pthread aux flags. Pour boost, on sait que findboost n'est pas une flèche et je ne suis pas étonné d'avoir du ajouter les variables à la main 😄