cmake build时出现错误:
van@ubuntu:~/workspace$ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
Inconsistency detected by ld.so: dl-version.c: 224:_dl_check_map_versions: Assertion `needed != ((void *)0)' failed!
逛遍stackoverflow基本上都是从环境变量着手,如:
van@ubuntu:~/workspace$ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
如上操作,shell执行命令后出现以下错误:
cmake: /usr/local/lib/libcurl.so.4: no version information available (required by cmake)
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/home/van/opensource/tufao/build
CMake Error: Error executing cmake::LoadCache(). Aborting.
第一条可能是libcurl在lib目录下的版本有问题,根据提示执行以下命令
van@ubuntu:~/workspace$ sudo mv /usr/local/lib/libcurl.so.4 /usr/local/lib/libcurl.so.4.bak
sudo ln /usr/lib/x86_64-linux-gnu/libcurl.so.4 /usr/local/lib/libcurl.so.4
经测试,第一条错误消失
后面的意思看起来是找不到cmake的路径,用/usr/bin/cmake全路径命令代替cmake试一下,OK!正常运行,那么问题解决的思路就出来了:1.设置环境变量CMAKE_ROOT到/usr/bin下,2.在环境变量指定的目录下创建一个指向/usr/bin的软连接。
这里考虑到尽量不影响cmake可能存在的其他模块,我们选择第二种方案:
sudo ln -s /usr/bin/cmake /usr/local/bin/cmake
请注意!这里一定要-s参数。
bingo!问题解决,看来还是自己琢磨的方法靠谱啊。
其实在这几个步骤之间,按照google的方法都尝试过,最后打算重装另一个版本的ubuntu的时候,转念想想还是再试一下。按照提示一条一条看看想想,大胆的假设,避免了一次重装系统的麻烦。
google过程中也学习到了一些利器,另立帖子。