2011-08-10 15 views
2

私は.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_biQT Creatorの.proファイルで64ビットと32ビットのマシンを検出する方法はありますか?

編集:.aライブラリはGtestです。私の問題を解決するもう1つの方法は、32ビットまたは64ビットのいずれのプラットフォームでも動作するg ++の.aファイルをどうにか構築することです。それは可能ですか?

答えて

2

mkspecで条件を実行すると(プラットフォームの範囲の値hereを参照)、非常に多様なコンパイラ/プラットフォームをチェックできます。ですから、例えば

mkspec:VAR += special_spec_var_value 

、用にコンパイル:あなたのようなものを持つことができ、.PROファイルで

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/ 
[email protected]       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/             
+0

あなたの回答がpeの理由で完璧に。あなたのテーブルに基づいて私たちの64ビットシステムを検出するために、 "linux-g ++ - 64:LIBS + = libgtest64.a"という行を使用しました。私は先に進み、あなたを元に戻した。ありがとう! –

1

マイmkspecディレクトリ(LINUX64マシン)は、以下の分化を与えます私のタッチスクリーンのライブラリをリンクするには:

linux-arm-g++:LIBS += -lts 
関連する問題