C++ 是否可以使用.pro文件基于计算机体系结构动态包含共享对象?
我目前正在与一位同事开发一个QT应用程序。此应用程序的特定部分需要使用第三方库。因为我们只需要这个库的一小部分,所以我们决定在项目中包含一个.so文件,以避免不必要地将文件传输到存储库。但最近我们遇到了麻烦,因为我们有不同的体系结构(32位和64位),所以.so文件基本上是无用的。既然我们有这些.so文件,那么是否可以同时包含这两个文件,并且在构建项目时,动态检测它所构建的体系结构并包含适当的共享对象文件 我无法理解的部分是识别.pro文件中的体系结构。我在上找到了这个答案,但正如有人评论的那样,这个解决方案只在windows上可用。我还发现了一些关于使用环境变量$MACHTYPE来检测体系结构的建议,但如果我没有弄错的话,这是一个仅适用于linux的解决方案。是否有一种真正跨平台的方法来检测体系结构C++ 是否可以使用.pro文件基于计算机体系结构动态包含共享对象?,c++,qt,C++,Qt,我目前正在与一位同事开发一个QT应用程序。此应用程序的特定部分需要使用第三方库。因为我们只需要这个库的一小部分,所以我们决定在项目中包含一个.so文件,以避免不必要地将文件传输到存储库。但最近我们遇到了麻烦,因为我们有不同的体系结构(32位和64位),所以.so文件基本上是无用的。既然我们有这些.so文件,那么是否可以同时包含这两个文件,并且在构建项目时,动态检测它所构建的体系结构并包含适当的共享对象文件 我无法理解的部分是识别.pro文件中的体系结构。我在上找到了这个答案,但正如有人评论的那样
我们还考虑过将第三方库源代码的tarball打包到应用程序中,但我们认为在用户使用我们的程序之前要求用户自己编译库是“不友好的”。我们一致认为,如果可能,该计划应尽可能独立。谢谢你读这篇文章 我现在也在做同样的事情。Qt SDK 1.2具有QMAKE_HOST.arch
contains( QMAKE_HOST.arch, x86_64 ) {
LIBS += 64bitlib.a
}
else {
LIBS += 32bitlib.a
}
谢谢你的回复!我已经研究过使用QMAKE_HOST.arch,但在我上面的链接中,它说这个解决方案只适用于windows?不知道他们为什么会这么说。它适用于64位Ubuntu和32位Win7。埃塔:我明白为什么现在,他们有“win32 msvc*:”作为规则的一部分。请注意,我上面的例子没有这个。谢谢!成功了。我们注销了它,因为有评论说它只是Windows。谢谢你的帮助!