Как настроить cmake для ссылки на `$CONDA_PREFIX/x86_64-conda-linux-gnu/sysroot/lib64/` вместо `/lib64`Linux

Ответить Пред. темаСлед. тема
Anonymous
 Как настроить cmake для ссылки на `$CONDA_PREFIX/x86_64-conda-linux-gnu/sysroot/lib64/` вместо `/lib64`

Сообщение Anonymous »

Я использую conda для настройки среды с помощью gcc и cmake для создания программы

Код: Выделить всё

cmake -D PKG_PLUGIN=ON -D PKG_EXTRA-FIX=ON -D PKG_KSPACE=ON -D PKG_MISC=ON -D PKG_PLUMED=ON -D LAMMPS_INSTALL_RPATH=ON -D BUILD_MPI=yes -D BUILD_OMP=yes -D BUILD_SHARED_LIBS=yes -D CMAKE_INSTALL_PREFIX=$lammps_root -D CMAKE_INSTALL_LIBDIR=lib -D CMAKE_INSTALL_FULL_LIBDIR=${lammps_root}/lib ../cmake
make -j8
make install
Сборка в порядке, но когда я пытаюсь ее запустить, я получаю следующую ошибку сегментации:

Код: Выделить всё

=================================
[gpu001:61738] *** Process received signal ***
[gpu001:61738] Signal: Segmentation fault (11)
[gpu001:61738] Signal code:  (-6)
[gpu001:61738] Failing at address: 0x7d870000f12a
[gpu001:61738] [ 0] /lib64/libpthread.so.0(+0xf6d0)[0x2b29ccc526d0]
[gpu001:61738] [ 1] /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/python3.11/site-packages/tensorflow/../../../libabsl_flags_reflection.so.2401.0.0(_ZN4absl12lts_2024011614flags_internal12FlagRegistry12RegisterFlagERNS0_15CommandLineFlagEPKc+0x99)[0x2b2a99edde09]
[gpu001:61738] [ 2] /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/python3.11/site-packages/tensorflow/../../../libabsl_flags_reflection.so.2401.0.0(_ZN4absl12lts_2024011614flags_internal23RegisterCommandLineFlagERNS0_15CommandLineFlagEPKc+0x21)[0x2b2a99edf5c1]
[gpu001:61738] [ 3] /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/python3.11/site-packages/tensorflow/../../../libabsl_log_flags.so.2401.0.0(+0x3079)[0x2b2a99ebd079]
[gpu001:61738] [ 4] /lib64/ld-linux-x86-64.so.2(+0xfb03)[0x2b29cadfab03]
[gpu001:61738] [ 5] /lib64/ld-linux-x86-64.so.2(+0x146de)[0x2b29cadff6de]
[gpu001:61738] [ 6] /lib64/ld-linux-x86-64.so.2(+0xf914)[0x2b29cadfa914]
[gpu001:61738] [ 7] /lib64/ld-linux-x86-64.so.2(+0x13ccb)[0x2b29cadfeccb]
[gpu001:61738] [ 8] /lib64/libdl.so.2(+0xfbb)[0x2b29cdd83fbb]
[gpu001:61738] [ 9] /lib64/ld-linux-x86-64.so.2(+0xf914)[0x2b29cadfa914]
[gpu001:61738] [10] /lib64/libdl.so.2(+0x15bd)[0x2b29cdd845bd]
[gpu001:61738] [11] /lib64/libdl.so.2(dlopen+0x31)[0x2b29cdd84051]
[gpu001:61738] [12] /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/opt/lammps/lib/liblammps.so.0(_ZN9LAMMPS_NS8platform6dlopenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x25)[0x2b29cbc068f6]
[gpu001:61738] [13] /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/opt/lammps/lib/liblammps.so.0(_ZN9LAMMPS_NS11plugin_loadEPKcPNS_6LAMMPSE+0x8a)[0x2b29cbf134a7]
[gpu001:61738] [14] /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/opt/lammps/lib/liblammps.so.0(_ZN9LAMMPS_NS16plugin_auto_loadEPNS_6LAMMPSE+0x1d3)[0x2b29cbf1324c]
[gpu001:61738] [15] /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/opt/lammps/lib/liblammps.so.0(_ZN9LAMMPS_NS6LAMMPS6createEv+0x471)[0x2b29cba82d05]
[gpu001:61738] [16] /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/opt/lammps/lib/liblammps.so.0(_ZN9LAMMPS_NS6LAMMPSC1EiPPcP19ompi_communicator_t+0x51bb)[0x2b29cba80e15]
[gpu001:61738] [17] lmp(main+0x5c)[0x55f0b973227e]
[gpu001:61738] [18] /lib64/libc.so.6(__libc_start_main+0xf5)[0x2b29cd366445]
[gpu001:61738] [19] lmp(+0x1179)[0x55f0b9732179]
[gpu001:61738] *** End of error message ***
Segmentation fault
Я запускаю ldd $(который lmp) и он показывает

Код: Выделить всё

     linux-vdso.so.1 =>  (0x00007fff9dbef000)
liblammps.so.0 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/opt/lammps/lib/liblammps.so.0 (0x00002b293726d000)
libmpi.so.40 => /public/software/openmpi/openmpi-4.0.3-gcc/lib/libmpi.so.40 (0x00002b2938b8c000)
libgomp.so.1 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libgomp.so.1 (0x00002b2937072000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b2938ea1000)
libstdc++.so.6 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libstdc++.so.6 (0x00002b29390bd000)
libm.so.6 => /lib64/libm.so.6 (0x00002b29392a0000)
libgcc_s.so.1 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libgcc_s.so.1 (0x00002b2937195000)
libc.so.6 => /lib64/libc.so.6 (0x00002b29395a2000)
libjpeg.so.8 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libjpeg.so.8 (0x00002b293996f000)
libpng16.so.16 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libpng16.so.16 (0x00002b29371b5000)
libz.so.1 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libz.so.1 (0x00002b29371f3000)
libfftw3.so.3 => /lib64/libfftw3.so.3 (0x00002b2939a55000)
libfftw3_omp.so.3 => /lib64/libfftw3_omp.so.3 (0x00002b2939dda000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b2939fe1000)
libmkl_intel_lp64.so.2 =>  /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libmkl_intel_lp64.so.2 (0x00002b293a1e5000)
libmkl_intel_thread.so.2 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libmkl_intel_thread.so.2 (0x00002b293b6e1000)
libmkl_core.so.2 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libmkl_core.so.2 (0x00002b293ed0d000)
libgsl.so.0 => /lib64/libgsl.so.0 (0x00002b2943085000)
libgslcblas.so.0 => /lib64/libgslcblas.so.0 (0x00002b29434ae000)
libopen-rte.so.40 => /public/software/openmpi/openmpi-4.0.3-gcc/lib/libopen-rte.so.40 (0x00002b29436eb000)
libopen-pal.so.40 => /public/software/openmpi/openmpi-4.0.3-gcc/lib/libopen-pal.so.40 (0x00002b29439a1000)
librt.so.1 => /lib64/librt.so.1 (0x00002b2943cb1000)
libutil.so.1 => /lib64/libutil.so.1 (0x00002b2943eb9000)
/lib64/ld-linux-x86-64.so.2 (0x00002b2937049000)
libsatlas.so.3 => /usr/lib64/atlas/libsatlas.so.3 (0x00002b29440bc000)
libgfortran.so.3 => /lib64/libgfortran.so.3 (0x00002b2944d09000)
libquadmath.so.0 => /public/groups/ai4ec/libs/conda/deepmd/3.0.0b0-cuda12/lib/libquadmath.so.0 (0x00002b2937213000)
Я думаю, что правильный пакет для ссылки должен быть в $CONDA_PREFIX/x86_64-conda-linux-gnu/sysroot/lib64/

Код: Выделить всё

x86_64-conda-linux-gnu/sysroot/lib64
x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6
x86_64-conda-linux-gnu/sysroot/lib64/ld-linux-x86-64.so.2
x86_64-conda-linux-gnu/sysroot/lib64/libnss_hesiod-2.17.so
x86_64-conda-linux-gnu/sysroot/lib64/libnss_db.so.2
x86_64-conda-linux-gnu/sysroot/lib64/libpthread-2.17.so
x86_64-conda-linux-gnu/sysroot/lib64/libc-2.17.so
Можно ли мне настроить какую-либо переменную среды или параметры cmake, чтобы связать программу с другим путем вместо /?

Подробнее здесь: https://stackoverflow.com/questions/787 ... ysroot-lib
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»