x86_64 プラットフォーム (Fedora16) で x86 アプリケーションをビルドしようとしています。このアプリケーションでは Qt を使用しており、ビルド システムは cmake です。私が使用しているCMakeLists.txtで:
find_package(Qt4 REQUIRED qtmain QtCore QtGui QtWebKit)
include(${QT_USE_FILE})
次のような Makefile を生成するための cmake コマンド:
cmake -DCMAKE_CXX_FLAGS="-fpermissive -m32"
-DCMAKE_CXX_LINKER_PREFERENCE="-m32"
-DCMAKE_EXE_LINKER_FLAGS="-m32"
-DCMAKE_SHARED_LINKER_FLAGS="-m32"
そのため、リンカーをコンパイルした後、互換性のある Qt ライブラリを見つけることができません。次のようなエラー:
/usr/bin/ld: skipping incompatible /usr/lib64/libQtWebKit.so when searching for -lQtWebKit
大丈夫です。/usr/lib64 ライブラリには x64 プラットフォームがあります。/usr/lib に目的のライブラリがあり、それらは存在します! しかし、なぜFindQt4がプラットフォームを認識しないのですか? このスクリプトは次の変数を設定します: QT_LIBRARY_DIR、QT_LIBRARIES など。このような変数は次のように設定されます。
-- QT_LIBRARY_DIR: /usr/lib64
-- QT_LIBRARIES: optimized;/usr/lib64/libQtWebKit.so;debug;/usr/lib64/libQtWebKit_debug.so;optimized;/usr/lib64/libQtXmlPatterns.so;debug;/usr/lib64/libQtXmlPatterns_debug.so;optimized;/usr/lib64/libQtGui.so;debug;/usr/lib64/libQtGui_debug.so;optimized;/usr/lib64/libQtNetwork.so;debug;/usr/lib64/libQtNetwork_debug.so;optimized;/usr/lib64/libQtCore.so;debug;/usr/lib64/libQtCore_debug.so
私の質問: /usr/lib ではないのはなぜですか? どうすれば修正できますか?