gpt4 book ai didi

交叉编译库的 Linux lib/include 组织?

转载 作者:太空狗 更新时间:2023-10-29 12:38:49 24 4
gpt4 key购买 nike

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

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

如果我们不进行交叉编译,事情 should go in /usr/local/lib .

我们团队的一些建议是:

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

    任何指点表示赞赏!

  • 最佳答案

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

    Keep anything that is non-standard to the Linux distro you're using separate. In fact keep files for different projects separate even if they share libraries. This will make it much easier to move your files to another machine, to setup multiple complete builds for testing, and most importantly to be able to recreate the build starting from scratch.


    这个决定真的很主观。

    • 您是否只需要为所有用户提供一份库副本?
    • 它很少改变吗?
    • 如果您的构建机器着火并且您没有该机器的备份,您重建库和交叉编译器环境的速度有多快?

    我问这些问题,因为如果库经常更改或不同的用户可能需要不同的版本,那么最好让它具有可移植性。也就是说,您可以在构建中指定在何处查找文件。

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

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

    做对您的项目最有利的事情,无论那是什么。

    关于交叉编译库的 Linux lib/include 组织?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/371485/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com