1

現在、xcode 8 を使用して C++ プロジェクトに取り組んでいますが、次のエラーが発生し続けます。

Undefined symbols for architecture x86_64:
"liblas::Reader::Reader(std::__1::basic_istream<char, std::__1::char_traits<char> >&)", referenced from:
  _main in main.o
"liblas::Reader::~Reader()", referenced from:
  _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

ブースト、liblas などをコンパイルしました。それを cmakelists.txt にも含め、「フレームワーク検索パス」と「ヘッダー検索パス」にリストされているフォルダを含めます。私のコンパイラは、Apple LLVM 8.0 の xcode 8 デフォルトです。私の展開ターゲットは 10.11 です。有効なアーキテクチャは「x86_64」と「i386」です。

libLAS を使用しようとするコードを次に示します (file.las には、las ファイルへのハードコードされたパスが含まれています)。このコードは、ここの libLAS c++ チュートリアルから直接引き出されました。

std::ifstream ifs;
ifs.open("file.las", std::ios::in | std::ios::binary);
liblas::ReaderFactory f;
liblas::Reader reader = f.CreateWithStream(ifs);

行をコメントアウトするliblas::Reader reader = f.CreateWithStream(ifs);と、コードは正常にコンパイルされ、有効な実行可能ファイルが生成されます。ここにこの行があると、エラーがスローされます。ただし、このプロジェクトで LAS ファイルを読み取れるようにする必要があるため、Reader を機能させる必要があります。

だから私の質問は:

  1. これをデバッグするより良い方法はありますか?

  2. これは私が見逃している明らかなエラーですか?

  3. これはライブラリの問題ですか?(libLAS)

  4. これを機能させるにはどうすればよいですか?

事前に誰にでも感謝します!

4

0 に答える 0