【问题标题】:possible missing library when running cmake运行 cmake 时可能缺少库
【发布时间】:2015-04-22 09:45:02
【问题描述】:

我正在尝试在我的机器(运行 Linux)上安装 program,但运行 make 时出现以下错误:

Starting build...
Working Directory : /home/laptop/mplabs_test
Build Type        : 

Generating OMP binary...
/bin/sh: 1: Syntax error: "&" unexpected
make: *** [lbs3d] Error 2

怎么了,我错过了图书馆吗?

【问题讨论】:

  • 你也可以切换到ninja:它比 make 更快,而且陷阱更少。 Cmake 支持它。 Installing ninja 超级快,只需下载可执行文件并将其放入您的路径即可。

标签: linux bash cmake


【解决方案1】:

您可以通过在 makefile 中设置 SHELL 变量来控制 make 用于执行配方的 shell。

如果该 makefile 使用特定于 bash 的功能,那么它应该已经设置了 SHELL=/bin/bash。既然它似乎没有这样做,你可以自己做。

修改有问题的makefile或使用

make SHELL=/bin/bash

而不仅仅是运行make

【讨论】:

    【解决方案2】:

    问题是 Makefile 使用了 bash 特定的语法 (|&) 但命令是由 /bin/sh 执行的,它并不指向 /bin/bash

    在我的电脑上(Ubuntu 14.04):

    ls -l /bin/sh
    lrwxrwxrwx 1 root root 4 Sep 16  2014 /bin/sh -> dash
    

    一种解决方案可能是让符号链接/bin/sh 指向/bin/bash

    sudo rm /bin/sh
    sudo ln -s /bin/bash /bin/sh
    

    【讨论】:

    • 像这样修改随机系统路径从不是正确的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多