由于库冲突,CMake 无法生成搜索路径
CMake unable to generate search path because of library conflict
尊敬的同事们,
我是 LINUX 的新手,正在尝试使用 CMake 构建 Geant4 示例。执行以下命令后
$cmake ~/Geant4/geant4.10.05.p01-install/share/Geant4-10.5.1/examples/basic/B1/
我收到此错误消息:
Cannot generate a safe runtime search path for target exampleB1 because files in some directories
may conflict with libraries in implicit directories:
runtime library [libexpat.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/home/dakar/anaconda3/lib
Some of these libraries may not be found correctly.
警告是正确的,当我 运行 $ make -j6
我收到错误消息
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libSM.so: undefined reference to
‘uuid_generate@UUID_1.0’
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libSM.so: undefined reference
to‘uuid_unparse_lower@UUID_1.0’
这个问题以前遇到过,这里详细介绍一些解决方法:
https://github.com/pism/pism/issues/356
URL 链接的页面表明,对于 Conda 4.4+,不应出现此问题。我正在使用 Conda 4.6.14,但该页面补充说,如果确实发生:您可以在将 conda 添加到您的路径之前,在 .bashrc
(或类似的)中设置 NOCONDA_PATH
变量,如下所示:
export NOCONDA_PATH=$PATH
export PATH=$HOME/anaconda3/bin:$PATH
我试过了,我的 .bashrc
现在显示为:
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/dakar/anaconda3/bin/conda' shell.bash hook 2> /dev/null$
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/home/dakar/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/dakar/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
# \export NOCONDA_PATH=$PATH
\export PATH="/home/dakar/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
export CLHEP_DIR=/home/dakar/CLHEP/2.3.3.2/CLHEP-install/
export CLHEP_INCLUDE_DIR=${CLHEP_DIR}/include/
export CLHEP_LIBRARY=${CLHEP_DIR}/lib/
export LD_LIBRARY_PATH=${CLHEP_LIBRARY}:${LD_LIBRARY_PATH}
export PATH=$CLHEP_DIR/bin/:$PATH
export TOPAS_G4_DATA_DIR=~/G4Data
export LD_LIBRARY_PATH=~/topas/libexternal/:$LD_LIBRARY_PATH
#export LD_LIBRARY_PATH=~/anaconda3/lib/gcc/lib:$LD_LIBRARY_PATH
#CERN ROOT
#export ROOTSYS=/usr/local/root
#export PATH=$ROOTSYS/bin:$PATH
#export PYTHONDIR=$ROOTSYS
#export LD_LIBRARY_PATH=$ROOTSYS/lib:$PYTHONDIR/lib:$ROOTSYS/bindings/pyroot:$LD_LIBRARY_PATH
#export PYTHONPATH=$ROOTSYS/lib:$PYTHONPATH:$ROOTSYS/bindings/pyroot
source ~/Geant4/geant4.10.05.p01-install/bin/geant4.sh
#source ~/Geant4/geant4.10.05.p01-install/share/Geant4-10.5.1/geant4make/geant4make.sh
export NOCONDA_PATH=$PATH
export PATH="/home/dakar/anaconda3/bin:$PATH"
这还是没有解决问题。当我 运行 echo $PATH
我仍然可以看到 conda 目录:
$ echo $PATH
/home/dakar/anaconda3/bin:/home/dakar/Geant4/geant4.10.05.p01-install/bin:/home/dakar/CLHEP/2.3.3.2/CLHEP-install//bin/:/home/dakar/anaconda3/bin:/home/dakar/anaconda3/condabin:/usr/local/cuda-8.0/bin:/home/dakar/bin:/home/dakar/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
有人有进一步的建议吗?卸载 Conda 本身是一种解决方案吗?
感谢您的宝贵时间。
大号
错误消息表明您在链接器调用中缺少 libuuid。
尝试将 -luuid 添加到您的链接器标志中。
您的构建系统是否使用 pkg-config?在这种情况下,您可以编辑 /usr/lib/x86_64-linux-gnu/pkgconfig/sm.pc
并将 -luuid 添加到 Libs
-Section.
这看起来像是您的 Linux-Distro 中的错误。
尊敬的同事们, 我是 LINUX 的新手,正在尝试使用 CMake 构建 Geant4 示例。执行以下命令后
$cmake ~/Geant4/geant4.10.05.p01-install/share/Geant4-10.5.1/examples/basic/B1/
我收到此错误消息:
Cannot generate a safe runtime search path for target exampleB1 because files in some directories
may conflict with libraries in implicit directories:
runtime library [libexpat.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/home/dakar/anaconda3/lib
Some of these libraries may not be found correctly.
警告是正确的,当我 运行 $ make -j6
我收到错误消息
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libSM.so: undefined reference to
‘uuid_generate@UUID_1.0’
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libSM.so: undefined reference
to‘uuid_unparse_lower@UUID_1.0’
这个问题以前遇到过,这里详细介绍一些解决方法:
https://github.com/pism/pism/issues/356
URL 链接的页面表明,对于 Conda 4.4+,不应出现此问题。我正在使用 Conda 4.6.14,但该页面补充说,如果确实发生:您可以在将 conda 添加到您的路径之前,在 .bashrc
(或类似的)中设置 NOCONDA_PATH
变量,如下所示:
export NOCONDA_PATH=$PATH
export PATH=$HOME/anaconda3/bin:$PATH
我试过了,我的 .bashrc
现在显示为:
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/dakar/anaconda3/bin/conda' shell.bash hook 2> /dev/null$
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/home/dakar/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/dakar/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
# \export NOCONDA_PATH=$PATH
\export PATH="/home/dakar/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
export CLHEP_DIR=/home/dakar/CLHEP/2.3.3.2/CLHEP-install/
export CLHEP_INCLUDE_DIR=${CLHEP_DIR}/include/
export CLHEP_LIBRARY=${CLHEP_DIR}/lib/
export LD_LIBRARY_PATH=${CLHEP_LIBRARY}:${LD_LIBRARY_PATH}
export PATH=$CLHEP_DIR/bin/:$PATH
export TOPAS_G4_DATA_DIR=~/G4Data
export LD_LIBRARY_PATH=~/topas/libexternal/:$LD_LIBRARY_PATH
#export LD_LIBRARY_PATH=~/anaconda3/lib/gcc/lib:$LD_LIBRARY_PATH
#CERN ROOT
#export ROOTSYS=/usr/local/root
#export PATH=$ROOTSYS/bin:$PATH
#export PYTHONDIR=$ROOTSYS
#export LD_LIBRARY_PATH=$ROOTSYS/lib:$PYTHONDIR/lib:$ROOTSYS/bindings/pyroot:$LD_LIBRARY_PATH
#export PYTHONPATH=$ROOTSYS/lib:$PYTHONPATH:$ROOTSYS/bindings/pyroot
source ~/Geant4/geant4.10.05.p01-install/bin/geant4.sh
#source ~/Geant4/geant4.10.05.p01-install/share/Geant4-10.5.1/geant4make/geant4make.sh
export NOCONDA_PATH=$PATH
export PATH="/home/dakar/anaconda3/bin:$PATH"
这还是没有解决问题。当我 运行 echo $PATH
我仍然可以看到 conda 目录:
$ echo $PATH
/home/dakar/anaconda3/bin:/home/dakar/Geant4/geant4.10.05.p01-install/bin:/home/dakar/CLHEP/2.3.3.2/CLHEP-install//bin/:/home/dakar/anaconda3/bin:/home/dakar/anaconda3/condabin:/usr/local/cuda-8.0/bin:/home/dakar/bin:/home/dakar/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
有人有进一步的建议吗?卸载 Conda 本身是一种解决方案吗?
感谢您的宝贵时间。 大号
错误消息表明您在链接器调用中缺少 libuuid。
尝试将 -luuid 添加到您的链接器标志中。
您的构建系统是否使用 pkg-config?在这种情况下,您可以编辑 /usr/lib/x86_64-linux-gnu/pkgconfig/sm.pc
并将 -luuid 添加到 Libs
-Section.
这看起来像是您的 Linux-Distro 中的错误。