32-битное связывание с использованием pcl под os x 10.9

#c #point-cloud-library

#c #точка-облако-библиотека

Вопрос:

я придумал довольно странную мысль. При компиляции моей программы с использованием os x 10.9 и pcl я получаю следующую ошибку:

 Undefined symbols for architecture x86_64: 
"pcl::OpenNIGrabber::OpenNIGrabber(std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > constamp;, pcl::OpenNIGrabber::Mode constamp;, pcl::OpenNIGrabber::Mode
constamp;)", referenced from: 
 

Я знаю, что я не единственный, у кого была эта ошибка, но, к сожалению, пока ничего не помогло. Дело в том, что у меня была точно такая же ошибка на моем компьютере с Windows, и я исправил ее, установив 32-битную версию pcl.

Итак, есть ли какой-либо способ скомпилировать pcl в 32-битном коде, используя мой mac? Это было бы действительно здорово. Кстати, я уже попробовал следующее, но потерпел неудачу:

 cmake -DCMAKE_OSX_ARCHITECTURES=386 
 

что следует:

 clang: error: invalid arch name '-arch 386' 
 

Я был бы очень признателен, если бы кто-нибудь мог дать подсказку о том, как решить эту проблему.

С наилучшими пожеланиями

Комментарии:

1. Эта архитектура должна быть i386 , а не 386 (по крайней мере, на моем mac)

2. Вы случайно определяете класс шаблонов с функциями, объявленными в файле cpp?

3. Нет, я просто обрабатываю объект OpenNIGrabber в моем main.cpp : pcl::Grabber* интерфейс = новый pcl::OpenNIGrabber();