有什么方法可以在 QT Creator .pro 文件中检测 64 位与 32 位机器吗?

发布于 2024-11-29 11:13:36 字数 441 浏览 3 评论 0原文

我正在链接到 .a lib,并且需要链接到正在编译的机器的正确版本。有没有办法在 Linux 中检测 .pro 文件中的机器类型?我找到了这篇文章,但他们只讨论Windows:http://developer.qt.nokia.com/faq/answer/how_can_i_detect_in_the_.pro_file_if_i_am_compiling_for_a_32_bit_or_a_64_bi

编辑:.a 库是 Gtest。解决我的问题的另一种方法是以某种方式使用 g++ 构建一个可在 32 位或 64 位平台上运行的 .a 文件。这可能吗?

I am linking to a .a lib and need to link to the right version for the machine that's compiling. Is there a way to detect the type of machine in a .pro file in linux? I found this article, but they only discuss Windows: http://developer.qt.nokia.com/faq/answer/how_can_i_detect_in_the_.pro_file_if_i_am_compiling_for_a_32_bit_or_a_64_bi

Edit: The .a library is Gtest. Another way to solve my problem would be to somehow build a .a file with g++ that will work on either 32-bit or 64-bit platforms. Is that possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁的年少不轻狂 2024-12-06 11:13:36

通过在 mkspec 上执行条件,(请参阅平台范围值此处< /a>),您可以检查各种编译器/平台。

我的 mkspec 目录(Linux64 机器)给出了以下区别:

aix-g++/                          irix-g++-64/                      qconfig.pri                       wince50standard-armv4i-msvc2005/
aix-g++-64/                       linux-cxx/                        qws/                              wince50standard-armv4i-msvc2008/
aix-xlc/                          linux-ecc-64/                     sco-cc/                           wince50standard-mipsii-msvc2005/
aix-xlc-64/                       linux-g++/                        sco-g++/                          wince50standard-mipsii-msvc2008/
common/                           linux-g++-32/                     solaris-cc/                       wince50standard-mipsiv-msvc2005/
cygwin-g++/                       linux-g++-64/                     solaris-cc-64/                    wince50standard-mipsiv-msvc2008/
darwin-g++/                       linux-g++-maemo/                  solaris-cc-64-stlport/            wince50standard-sh4-msvc2005/   
default@                          linux-icc/                        solaris-cc-stlport/               wince50standard-sh4-msvc2008/   
features/                         linux-icc-32/                     solaris-g++/                      wince50standard-x86-msvc2005/   
freebsd-g++/                      linux-icc-64/                     solaris-g++-64/                   wince50standard-x86-msvc2008/   
freebsd-g++34/                    linux-kcc/                        symbian/                          wince60standard-armv4i-msvc2005/
freebsd-g++40/                    linux-llvm/                       symbian-abld/                     wince60standard-x86-msvc2005/   
freebsd-icc/                      linux-lsb-g++/                    symbian-sbsv2/                    wincewm50pocket-msvc2005/       
hpux-acc/                         linux-pgcc/                       tru64-cxx/                        wincewm50pocket-msvc2008/       
hpux-acc-64/                      lynxos-g++/                       tru64-g++/                        wincewm50smart-msvc2005/        
hpux-acc-o64/                     macx-g++/                         unixware-cc/                      wincewm50smart-msvc2008/        
hpux-g++/                         macx-g++40/                       unixware-g++/                     wincewm60professional-msvc2005/ 
hpux-g++-64/                      macx-g++42/                       unsupported/                      wincewm60professional-msvc2008/ 
hpuxi-acc-32/                     macx-icc/                         win32-borland/                    wincewm60standard-msvc2005/     
hpuxi-acc-64/                     macx-llvm/                        win32-g++/                        wincewm60standard-msvc2008/     
hpuxi-g++-64/                     macx-pbuilder/                    win32-icc/                        wincewm65professional-msvc2005/ 
hurd-g++/                         macx-xcode/                       win32-msvc2003/                   wincewm65professional-msvc2008/ 
irix-cc/                          macx-xlc/                         win32-msvc2005/                                                   
irix-cc-64/                       netbsd-g++/                       win32-msvc2008/                                                   
irix-g++/                         openbsd-g++/                      win32-msvc2010/                                                   

By doing your conditional on a mkspec, (see Platform Scope Values here), you can check for a very large variety of compiler/platform.

My mkspec directory (Linux64 machine), gives the following differentiations:

aix-g++/                          irix-g++-64/                      qconfig.pri                       wince50standard-armv4i-msvc2005/
aix-g++-64/                       linux-cxx/                        qws/                              wince50standard-armv4i-msvc2008/
aix-xlc/                          linux-ecc-64/                     sco-cc/                           wince50standard-mipsii-msvc2005/
aix-xlc-64/                       linux-g++/                        sco-g++/                          wince50standard-mipsii-msvc2008/
common/                           linux-g++-32/                     solaris-cc/                       wince50standard-mipsiv-msvc2005/
cygwin-g++/                       linux-g++-64/                     solaris-cc-64/                    wince50standard-mipsiv-msvc2008/
darwin-g++/                       linux-g++-maemo/                  solaris-cc-64-stlport/            wince50standard-sh4-msvc2005/   
default@                          linux-icc/                        solaris-cc-stlport/               wince50standard-sh4-msvc2008/   
features/                         linux-icc-32/                     solaris-g++/                      wince50standard-x86-msvc2005/   
freebsd-g++/                      linux-icc-64/                     solaris-g++-64/                   wince50standard-x86-msvc2008/   
freebsd-g++34/                    linux-kcc/                        symbian/                          wince60standard-armv4i-msvc2005/
freebsd-g++40/                    linux-llvm/                       symbian-abld/                     wince60standard-x86-msvc2005/   
freebsd-icc/                      linux-lsb-g++/                    symbian-sbsv2/                    wincewm50pocket-msvc2005/       
hpux-acc/                         linux-pgcc/                       tru64-cxx/                        wincewm50pocket-msvc2008/       
hpux-acc-64/                      lynxos-g++/                       tru64-g++/                        wincewm50smart-msvc2005/        
hpux-acc-o64/                     macx-g++/                         unixware-cc/                      wincewm50smart-msvc2008/        
hpux-g++/                         macx-g++40/                       unixware-g++/                     wincewm60professional-msvc2005/ 
hpux-g++-64/                      macx-g++42/                       unsupported/                      wincewm60professional-msvc2008/ 
hpuxi-acc-32/                     macx-icc/                         win32-borland/                    wincewm60standard-msvc2005/     
hpuxi-acc-64/                     macx-llvm/                        win32-g++/                        wincewm60standard-msvc2008/     
hpuxi-g++-64/                     macx-pbuilder/                    win32-icc/                        wincewm65professional-msvc2005/ 
hurd-g++/                         macx-xcode/                       win32-msvc2003/                   wincewm65professional-msvc2008/ 
irix-cc/                          macx-xlc/                         win32-msvc2005/                                                   
irix-cc-64/                       netbsd-g++/                       win32-msvc2008/                                                   
irix-g++/                         openbsd-g++/                      win32-msvc2010/                                                   
抚你发端 2024-12-06 11:13:36

在 .pro 文件中,您可以包含以下内容:

mkspec:VAR += special_spec_var_value

因此,例如,在为arm编译时,要链接我的触摸屏库,我会这样做:

linux-arm-g++:LIBS += -lts

In the .pro file, you can have things like:

mkspec:VAR += special_spec_var_value

So for example, when compiling for arm, to link my touchscreen lib I do:

linux-arm-g++:LIBS += -lts
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文