2

我们正在为桌面 Linux 下的嵌入式 Linux 目标交叉编译应用程序。出于测试和其他目的,我们在应用程序中使用静态链接库。我们使用的测试库是CMockery

我的问题是:考虑到我们正在交叉编译,CMockery 的静态库和包含文件应该在哪里?

如果我们不进行交叉编译,则应该进入 /usr/local/lib

我们团队的一些建议是:

  • /opt/google/lib 和 /opt/google/include
  • /opt/ embeddedLinuxDistro /usr/local/share/google/lib(包括)
  • /usr/local/ arch /lib (包括)

    任何指针表示赞赏!

  • 4

    1 回答 1

    1

    注意:写完这个答案后,我的总结是:

    将您正在使用的 Linux 发行版的非标准内容分开保存。事实上,即使它们共享库,也可以将不同项目的文件分开。这将使您更容易将文件移动到另一台机器,设置多个完整的构建进行测试,最重要的是能够从头开始重新创建构建。


    这个决定真的很主观。

    • 您是否只需要为所有用户提供一份库副本?
    • 它很少改变吗?
    • 如果您的构建机器起火并且您没有该机器的备份,那么您可以如何快速轻松地重新构建您的库和交叉编译器环境?

    我问这些问题,因为如果库经常更改或者不同的用户可能需要不同的版本,你最好让它是可移植的。也就是说,您可以在构建中指定在哪里找到文件。

    在您团队的建议中,我倾向于包含对您的项目的引用的路径。这将使一年后(当有人要求您设置另一台构建机器时)更容易重现所有内容。

    最后,我不会担心尝试遵守“标准”库位置,因为您不是在创建和管理 Linux 发行版。此外,大多数人真的不知道“/usr/lib”和/usr/local/lib”之外的任何东西,甚至知道它们的人也不知道它们之间的区别。

    做最适合你的项目的事情,不管它是什么。

    于 2008-12-19T15:15:40.550 回答