在Centos 6.9上,我正在构建cmake 3.5.0。我已经安装了cmake 3.4.3。对于3.5.0,我确实没问题,然后做了'sudo make install'。但它给了我:
-primary
但是我在$ LD_LIBRARY_PATH中的/ usr / lib64之前有/ usr / local / lib64,而/usr/local/lib64/libstdc++.so.6有GLIBC_3.4.15和GLIBC_3.5.21。
/home/ckim/CARLA/carla/cmake-3.5.0/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/ckim/CARLA/carla/cmake-3.5.0/Bootstrap.cmk/cmake)
/home/ckim/CARLA/carla/cmake-3.5.0/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/ckim/CARLA/carla/cmake-3.5.0/Bootstrap.cmk/cmake)
make: *** [cmake_check_build_system] Error 1
可能是什么问题?
答案 0 :(得分:0)
但是在$ LD_LIBRARY_PATH中/ usr / lib64之前我有/ usr / local / lib64
当您在sudo
下运行时,GLIBC将忽略LD_LIBRARY_PATH
并仅使用系统路径来搜索库。
如果GLIBC没有这样做,您可以通过将setuid
指向您自己的LD_LIBRARY_PATH
来轻松地破坏任何libc.so.6
计划。
解决方案:
更好:不要使用LD_LIBRARY_PATH
。而是使用适当的-rpath=
链接器选项编译程序,以便它们正常工作。
更糟:sudo -s
。
现在以您想要的任何方式设置LD_LIBRARY_PATH
,然后运行make install
。