【问题标题】:Better practice of using static libraries in Unix?在 Unix 中使用静态库的更好做法?
【发布时间】:2013-02-10 06:18:21
【问题描述】:

我是 unix 新手。 这是我第一次尝试在 Mac 上使用外部库(Ogre3D)。我不想将所有 .lylib 文件转储到 /usr/lib 目录中,因为我可能想在不需要它们时删除这些文件,并且很难将它们与其他库文件区分开来。当我在 /usr/lib/ 目录中创建一个名为 Ogre 的新文件夹来托管我的 Ogre 库文件时,似乎在使用 -l 标志编译文件时无法访问这些文件以指定位置。所以我想知道是否有必要将所有文件放在 /usr/lib/ 中,而不是将它们放入 /usr/lib/ 内的文件夹中?

我想知道是否可以将包含文件夹直接放入 /usr/includes/ 以便我可以访问头文件?或者我必须将所有标题放在 /usr/includes/?

【问题讨论】:

  • 我认为你应该避免使用静态库,而只使用共享库。 tldp.org/HOWTO/Program-Library-HOWTO
  • 而你的问题提到了 Mac 但被标记为 Linux... 为什么??? (您是在 Mac 笔记本电脑上运行 Linux 吗?)

标签: linux unix shared-libraries system static-libraries


【解决方案1】:

所以我想知道是否有必要将所有文件放在 /usr/lib/ 中,而不是将它们放入 /usr/lib/ 内的文件夹中?

没有。 -L<dir> 链接器标志使编译器搜索 dir 以及标准库路径。

我想知道是否可以将包含文件夹直接放入 /usr/includes/ 以便我可以访问头文件?

这里有更多选择。要么把它们放在/usr/include/foo 然后

#include <foo/foo.h>

(首选)或将它们放入/usr/include/foo,使用-I/usr/include/foo 编译器标志,然后编写

#include <foo.h>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    相关资源
    最近更新 更多