混合共享和静态库

时间:2015-07-09 22:24:28

标签: premake

我使用premake5在多个平台上构建复杂的应用程序。我的应用程序链接静态和共享/动态外部库。 似乎存在重要的构建链依赖关系,这会破坏生成的预生成' gmake'在这种情况下制作文件。

案例:

如果您在premake'链接'中混合共享和静态库。语句,GCC似乎感到困惑,并期望您的共享库引用实际上是静态库。当它无法找到它们时,链接阶段就会失败。这通常通过在共享库中添加' -Bdynamic'作为前缀来处理。遗憾的是,没有办法告诉premake5外部链接库是静态的还是动态的,所以你必须手动修复make文件,这会破坏构建实用程序的目的。

这是一种表现。我不认为你可以喂养#B; -Bdynamic"进入linkoptions,因为它必须后跟共享库列表。

1 个答案:

答案 0 :(得分:2)

看起来像gmake动作中的错误(或至少缺少功能) 对于那些,最好的方法是转到Github上的Premake页面(https://github.com/premake/premake-core)并创建一个新问题。

如果你有时间提供一个小的可重复项目(一个静态的lib项目,一个动态的项目,一个使用两者的应用程序,每个只有1个cpp或一些简单的东西+预制脚本)并将它附加到问题,它也将非常受欢迎(并且更容易处理这个问题^^)