Objective-C アプリケーションから pcl を使用しようとしています。次のコードがあります。
int i;
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
i = pcl::io::loadPCDFile("test.pcd", *cloud);
ボタン付きの非常に単純な Cocoa アプリケーションを作成しています。ボタンが押されると、上記のコードのみを含むプロシージャが呼び出されます。上記のコードを含むファイルは、objective-c++ ファイルです。
問題は、pcl::io::loadPCDFile への呼び出しが EXC_BAD_ACCESS で終了することです。stack_trace は
#0 0x00007fff8ecb60ef in std::string::compare(char const*) const ()
#1 0x000000010007e42d in bool std::operator==<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/c++/4.2.1/bits/basic_string.h:2177
#2 0x00000001007bedea in pcl::PCDReader::readHeader(std::string const&, pcl::PCLPointCloud2&, Eigen::Matrix<float, 4, 1, 0, 4, 1>&, Eigen::Quaternion<float, 0>&, int&, int&, unsigned int&, int) at /Users/jkp/Development/pointclouds/pcl-pcl-1.7.0/io/src/pcd_io.cpp:133
#3 0x00000001007c2a47 in pcl::PCDReader::read(std::string const&, pcl::PCLPointCloud2&, Eigen::Matrix<float, 4, 1, 0, 4, 1>&, Eigen::Quaternion<float, 0>&, int&, int) at /Users/jkp/Development/pointclouds/pcl-pcl-1.7.0/io/src/pcd_io.cpp:675
#4 0x0000000100002e6d in int pcl::PCDReader::read<pcl::PointXYZ>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, pcl::PointCloud<pcl::PointXYZ>&, int) at /usr/local/include/pcl-1.7/pcl/io/pcd_io.h:208
#5 0x0000000100002213 in int pcl::io::loadPCDFile<pcl::PointXYZ>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, pcl::PointCloud<pcl::PointXYZ>&) at /usr/local/include/pcl-1.7/pcl/io/pcd_io.h:544
#6 0x00000001000015af in read() at /Users/jkp/Development/pointclouds/load_test/load_test/pcl_routines.cpp:18
コードを .cpp ファイルに移動して、pcl 関連のコードを純粋な C++ に保持しようとしましたが、結果は同じです。
コードをデバッグしてステップ実行すると、readHeader が呼び出されたときに、変数 file_name が無効であるように見えることがわかります。
pcl ドキュメントの例を使用すると、コンパイルして正常に実行されます。
私が見落としている設定や明らかなものはありますか?
どんな助けでも大歓迎です。
ありがとう。
編集:
(答えを答えに移動しました。はい、私はここでは初心者です。申し訳ありません:))