我们正在为桌面 Linux 下的嵌入式 Linux 目标交叉编译应用程序。出于测试和其他目的,我们在应用程序中使用静态链接库。我们使用的测试库是CMockery。
我的问题是:考虑到我们正在交叉编译,CMockery 的静态库和包含文件应该在哪里?
如果我们不进行交叉编译,则应该进入 /usr/local/lib。
我们团队的一些建议是:
任何指针表示赞赏!
我们正在为桌面 Linux 下的嵌入式 Linux 目标交叉编译应用程序。出于测试和其他目的,我们在应用程序中使用静态链接库。我们使用的测试库是CMockery。
我的问题是:考虑到我们正在交叉编译,CMockery 的静态库和包含文件应该在哪里?
如果我们不进行交叉编译,则应该进入 /usr/local/lib。
我们团队的一些建议是:
注意:写完这个答案后,我的总结是:
将您正在使用的 Linux 发行版的非标准内容分开保存。事实上,即使它们共享库,也可以将不同项目的文件分开。这将使您更容易将文件移动到另一台机器,设置多个完整的构建进行测试,最重要的是能够从头开始重新创建构建。
这个决定真的很主观。
我问这些问题,因为如果库经常更改或者不同的用户可能需要不同的版本,你最好让它是可移植的。也就是说,您可以在构建中指定在哪里找到文件。
在您团队的建议中,我倾向于包含对您的项目的引用的路径。这将使一年后(当有人要求您设置另一台构建机器时)更容易重现所有内容。
最后,我不会担心尝试遵守“标准”库位置,因为您不是在创建和管理 Linux 发行版。此外,大多数人真的不知道“/usr/lib”和/usr/local/lib”之外的任何东西,甚至知道它们的人也不知道它们之间的区别。
做最适合你的项目的事情,不管它是什么。