How can I detect in the .pro file if I am compiling on a 32 bit or a 64 bit platform?

You can use QMAKE_HOST.arch for this. The QMAKE_HOST variable expresses host information about the machine running qmake and QMAKE_HOST.arch allows you to determine the target architecture. You can use it as follows:

  1. win32-g++:contains(QMAKE_HOST.arch, x86_64):{
  2. do something
  3. }

3 comments

May 3, 2011

Picture of ludde ludde

Ant Farmer

If I understand things correctly, QMAKE_HOST.arch will tell you if you are compiling on a 32 or 64 bit platform, which is not necessarily the same as the platform you are compiling for, right?

May 4, 2011

Picture of sigrid sigrid

Lab Rat

That’s correct. You can use QMAKE_TARGET.arch to decide the platform you are building for. We have added the following FAQ [developer.qt.nokia.com] for this now:

March 18, 2013

Picture of hrodstein hrodstein

Lab Rat

Using Qt 4.8.4, this works for me on Windows but not on Macintosh. On Macintosh
message($$QMAKE_TARGET.arch)
prints nothing in the Qt creator Compile Output pane while on Windows it prints x86_64.

I am not in a position to test in Qt 5.

I have reported this as a bug: https://bugreports.qt-project.org/browse/QTBUG-30263

Write a comment

Sorry, you must be logged in to post a comment.