Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ubuntu Linux上安装共享库?_Linux_Ubuntu_Installation - Fatal编程技术网

如何在Ubuntu Linux上安装共享库?

如何在Ubuntu Linux上安装共享库?,linux,ubuntu,installation,Linux,Ubuntu,Installation,我在Ubuntu 10.04上共享库时遇到问题。在过去几个月里,我已经把它过期了好几次,读了很多关于安装libs的文章,但我似乎没有抓住重点 从源代码目录开始,我运行以下命令: make 运行干净,没有任何错误 sudo make安装 似乎工作正常,以以下内容结束: cp foo.so.0.1/usr/local/lib/ rm-f/usr/local/lib/foo.so ln-s/usr/local/lib/foo.so.0.1/usr/local/lib/foo.so sudo ldcon

我在Ubuntu 10.04上共享库时遇到问题。在过去几个月里,我已经把它过期了好几次,读了很多关于安装libs的文章,但我似乎没有抓住重点

从源代码目录开始,我运行以下命令:

  • make

    运行干净,没有任何错误
  • sudo make安装

    似乎工作正常,以以下内容结束: cp foo.so.0.1/usr/local/lib/
    rm-f/usr/local/lib/foo.so
    ln-s/usr/local/lib/foo.so.0.1/usr/local/lib/foo.so
  • sudo ldconfig

    运行时没有任何输出
  • 在编写makefile时,我不能通过名称来寻址lib,而是通过路径来寻址:
    不工作:
    -lfoo

    工作:
    -L/usr/local/lib/foo.so

    无论我尝试安装什么lib,问题都是一样的


    我错过了什么?或者我可以做些什么来找到呢?

    在您的库搜索路径中是否有
    /usr/local/lib/
    ?如果没有,则需要在Makefile中同时指定
    -lfoo
    /usr/local/lib/
    ,以便链接器知道在哪里查找


    /usr/local/lib/
    是否在您的库搜索路径中取决于您的发行版。

    请记住,库名称应以
    lib
    开头,以
    结尾。因此
    。可能您缺少启动的

    ,尤其是Boost不使用automake或autoconf,因此没有运行这些命令的场景。。。你读过吗?通过使用
    apt-get
    ,或者使用普通的软件包管理器,可以很容易地在Ubuntu中添加boost。查找包
    libboost-dev
    ,或
    libboost-all-dev
    。不需要手动安装它们,除非您有一个特定的版本,您必须链接到该版本,该版本与您的存储库提供的版本不同。我无法使用数据包管理器,因为以前安装的boost数据包管理器已损坏,我需要快速安装。是的,我阅读了《入门》,但这是很久以前的事了。boost应该是一个例子,安装的其他部分工作正常。@user918545:虽然GNU/Linux世界的其他部分倾向于使用automake/autoconf,但boost没有。所以Boost不仅仅是一个例子,因为它是由一个完整的构建系统构建的,因此遵循不同的构建过程。但我只混合了安装过程。效果保持不变。我不能在我的makefile中使用boost libnames。是的,(很遗憾)usr/local/lib/在搜索路径中。安装的其他LIB是因为问题首先发生在它们应该如何工作。