gpt4 book ai didi

c++ - 是否可以使用 .pro 文件根据计算机体系结构动态包含共享对象?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:55:32 26 4
gpt4 key购买 nike

我目前正在与同事一起开发 QT 应用程序。我这个应用程序的特定部分需要使用第三方库。由于我们只需要这个库的一小部分,我们决定制作一个 .so 文件以包含在我们的项目中,以避免不必要地将文件传输到我们的存储库。我们最近遇到了麻烦,但当我们被提醒由于我们有不同的架构(32 位与 64 位)时,.so 文件基本上是无用的。既然我们有这些 .so 文件,是否可以同时包含这两个文件,并且在构建项目时动态检测它所构建的架构并包含适当的共享对象文件?

我无法弄清楚的部分是识别 .pro 文件中的体系结构。我在 qt forums 上找到了这个答案,但正如有人评论的那样,此解决方案仅适用于 Windows。我还找到了有关使用环境变量 $MACHTYPE 检测体系结构的建议,但如果我没记错的话,那是一个仅限 Linux 的解决方案。是否有真正跨平台的架构检测方法?

我们还考虑过将第三方库源代码的 tarball 打包到应用程序中,但我们认为要求用户在使用我们的程序之前自行编译库是“不友好的”。我们同意,如果可能的话,这个程序应该尽可能独立。感谢阅读本文!

最佳答案

我现在也在做同样的事情。 Qt SDK 1.2 有 QMAKE_HOST.arch

contains( QMAKE_HOST.arch, x86_64 ) {
LIBS += 64bitlib.a
}
else {
LIBS += 32bitlib.a
}

关于c++ - 是否可以使用 .pro 文件根据计算机体系结构动态包含共享对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390180/

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