2

QtCreatorを使用してC++のPCLライブラリでlibfreenectを使用する方法を学ぼうとしています。私はc++のn00bなので、最終的にサンプルのコンパイル中にエラーが発生しました。

ld: warning: in /usr/local/lib/libfreenect.dylib, file was built for i386 which is not the architecture being linked (x86_64)
make: Leaving directory `/Users/george/Documents/Qt/OKPCL'
Undefined symbols:
  "_freenect_init", referenced from:
      Freenect::Freenect::Freenect()in OKPCL.o
  "_freenect_select_subdevices", referenced from:
      Freenect::Freenect::Freenect()in OKPCL.o
  "_freenect_process_events", referenced from:
      Freenect::Freenect::operator()()in OKPCL.o
  "_freenect_shutdown", referenced from:
      Freenect::Freenect::~Freenect()in OKPCL.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [OKPCL] Error 1
The process "/usr/bin/make" exited with code 2.
Error while building project OKPCL (target: Desktop)
When executing build step 'Make'

libfreenectは、私のマシン(osx 10.6.8を実行している)のi386アーキテクチャ用に構築されています。QtCreatorによって実行されるデフォルトのMakeがこれを行うことに気づきました。

make: Entering directory `/Users/george/Documents/Qt/OKPCL'
g++ -headerpad_max_install_names -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -o OKPCL main.o OKPCL.o   -F/Users/george/QtSDK/Desktop/Qt/474/gcc/lib -L/Users/george/QtSDK/Desktop/Qt/474/gcc/lib /usr/local/lib/libfreenect.dylib /usr/local/lib/libpcl_io.dylib /usr/local/lib/libpcl_common.dylib -framework QtCore 

アーキテクチャがx86_64ではなくi386に設定されるように、.proファイルに設定できるQtフラグはありますか?

4

1 に答える 1

2
FOO = -arch i386
LIBS = -arch i386
LIBS += $$FOO

また

CONFIG += i386

編集

特定のアーキテクチャに Qt を設定するには、コマンド プロンプトを実行する必要があります。Qt ディレクトリを入力して実行します。

configure -embedded i386 -no-webkit

確認後、しばらく待ってから指示に従ってください。ここには、構成用の他のフラグがあります。Qt を構成し、バイナリを再コンパイルします。構成後にその方法を説明します。

于 2012-07-01T11:22:05.647 に答える