我们正在桌面Linux下交叉编译嵌入式Linux目标的应用程序。出于测试和其他目的,我们在我们的应用程序中使用静态链接库。我们使用的测试库是CMockery。
我的问题是:鉴于我们是交叉编译的,CMockery的静态库和包含文件应该在哪里生效?
如果我们没有进行交叉编译,那就是should go in /usr/local/lib。
我们团队的一些建议是:
答案 0 :(得分:1)
注意:写完这个答案后,我的总结将是:
将任何非标准的内容保存到您正在单独使用的Linux发行版中。事实上,即使共享库,也要将不同项目的文件分开。这样可以更轻松地将文件移动到另一台机器,设置多个完整版本进行测试,最重要的是能够从头开始重新创建构建。
这个决定是非常主观的。
我问这些问题,因为如果图书馆经常变化或者不同的用户可能需要不同的版本,那么最好让它变得便携。也就是说,您可以在构建中指定在哪里查找文件。
在你团队的建议中,我会倾向于包含对项目的引用的路径。这将使一年后(当有人要求您设置另一台构建机器时)更容易重现所有内容。
最后,我不担心尝试遵守“标准”库位置,因为您不是在创建和管理Linux发行版。此外,大多数人并不比“/ usr / lib”和/ usr / local / lib更了解任何东西,甚至知道那些人的人也不知道差异。
无论可能是什么,都要为您的项目做最好的事情。