Chapter 10.3 : La compilation

Comme toujours, on créer un dossier build, dans notre projet, puis on va dedans :

1
2
mkdir build
cd build


On appelle cmake :

cmake ..
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- NVHPC_CUDA_VERSION not specified.
-- Default CUDA version selected: 11.8
-- Found HDF5: /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/libcrypto.so;/usr/lib/x86_64-linux-gnu/libcurl.so;/usr/lib/x86_64-linux-gnu/libpthread.a;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.a;/usr/lib/x86_64-linux-gnu/libm.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/libcrypto.so;/usr/lib/x86_64-linux-gnu/libcurl.so;/usr/lib/x86_64-linux-gnu/libpthread.a;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.a;/usr/lib/x86_64-linux-gnu/libm.so (found version "1.10.7") found components: C CXX 
-- HDF5_CXX_LIBRARIES = /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/libcrypto.so;/usr/lib/x86_64-linux-gnu/libcurl.so;/usr/lib/x86_64-linux-gnu/libpthread.a;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.a;/usr/lib/x86_64-linux-gnu/libm.so
-- Use nvc++ compiler at /opt/nvidia/hpc_sdk/Linux_x86_64/22.11/compilers/bin/nvc++
-- Configuring done
-- Generating done
-- Build files have been written to: XXX/CUFFT_HDF5_CUDA/build


Note : si vous n'avez pas d'autre compilateurs que nvc++, vous pouver appeler directement cmake .. -DCMAKE_CXX_COMPILER=${NVCPP}


On appelle make :

1
2
3
4
5
6
7
8
9
10
11
12
13
Consolidate compiler generated dependencies of target compute_hdf5_data_format
[ 14%] Building CXX object src/CMakeFiles/compute_hdf5_data_format.dir/RawHdf5.cpp.o
[ 28%] Building CXX object src/CMakeFiles/compute_hdf5_data_format.dir/RawHdf5_hdf5.cpp.o
[ 42%] Linking CXX static library libcompute_hdf5_data_format.a
[ 42%] Built target compute_hdf5_data_format
Consolidate compiler generated dependencies of target compute_cufft_on_hdf5
[ 57%] Building CXX object src/CMakeFiles/compute_cufft_on_hdf5.dir/main.cpp.o
[ 71%] Linking CXX executable compute_cufft_on_hdf5
[ 71%] Built target compute_cufft_on_hdf5
Consolidate compiler generated dependencies of target create_hdf5_normal_distribution
[ 85%] Building CXX object src/CMakeFiles/create_hdf5_normal_distribution.dir/main_create_file.cpp.o
[100%] Linking CXX executable create_hdf5_normal_distribution
[100%] Built target create_hdf5_normal_distribution