c++ - Assimp链接错误

标签 c++ xcode5 linker-errors static-linking assimp

我刚刚下载了assimp 3.0库并使用 cmake 构建所需的 make 文件,然后编译并构建库本身,该过程成功(对 StepFile.h 进行少量修改),

我的 assimp header 文件夹位于:

/usr/local/include

我的 libassimp.a 位于:

/usr/local/lib

但是,当我在命令行项目中指定库和头文件并尝试测试我的项目时,出现以下错误:

Undefined symbols for architecture x86_64:
"Assimp::Importer::Importer()", referenced from:
  _main in main.o
"Assimp::Importer::~Importer()", 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) 

当我添加-lassimp时至Other Linker Flags我收到以下错误:

Undefined symbols for architecture x86_64:
"_crc32", referenced from:
  _unzReadCurrentFile in libassimp.a(unzip.c.o)
"_get_crc_table", referenced from:
  _unzOpenCurrentFile3 in libassimp.a(unzip.c.o)
"_inflate", referenced from:
  Assimp::XGLImporter::InternReadFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, aiScene*, Assimp::IOSystem*) in libassimp.a(XGLLoader.cpp.o)
  Assimp::BlenderImporter::InternReadFile(std::__1::basic_string<char,  std::__1::char_traits<char>, std::__1::allocator<char> > const&, aiScene*, Assimp::IOSystem*) in libassimp.a(BlenderLoader.cpp.o)
  Assimp::XFileParser::XFileParser(std::__1::vector<char, std::__1::allocator<char> > const&) in libassimp.a(XFileParser.cpp.o)
  _unzReadCurrentFile in libassimp.a(unzip.c.o)
 "_inflateEnd", referenced from:
  Assimp::XGLImporter::InternReadFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, aiScene*, Assimp::IOSystem*) in libassimp.a(XGLLoader.cpp.o)
  Assimp::BlenderImporter::InternReadFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, aiScene*, Assimp::IOSystem*) in libassimp.a(BlenderLoader.cpp.o)
  Assimp::XFileParser::XFileParser(std::__1::vector<char, std::__1::allocator<char> > const&) in libassimp.a(XFileParser.cpp.o)
  _unzCloseCurrentFile in libassimp.a(unzip.c.o)
  "_inflateInit2_", referenced from:
  Assimp::XGLImporter::InternReadFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, aiScene*, Assimp::IOSystem*) in libassimp.a(XGLLoader.cpp.o)
  Assimp::BlenderImporter::InternReadFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, aiScene*, Assimp::IOSystem*) in libassimp.a(BlenderLoader.cpp.o)
  Assimp::XFileParser::XFileParser(std::__1::vector<char, std::__1::allocator<char> > const&) in libassimp.a(XFileParser.cpp.o)
  _unzOpenCurrentFile3 in libassimp.a(unzip.c.o)
  "_inflateReset", referenced from:
  Assimp::XFileParser::XFileParser(std::__1::vector<char, std::__1::allocator<char> > const&) in libassimp.a(XFileParser.cpp.o)
  "_inflateSetDictionary", referenced from:
  Assimp::XFileParser::XFileParser(std::__1::vector<char, std::__1::allocator<char> >  const&) in libassimp.a(XFileParser.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

最佳答案

我最近也遇到了同样的问题。对我来说,实际的解决方案是确保我使用已编译的 libassimp.a 的项目也链接到 libz.dylib,而不是将 assimp 转换为 .dylib。/p>

关于c++ - Assimp链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23501291/

相关文章:

c++ - 单元测试 native C++ 代码

c++ - 变量为常量时报错: Expression must have a constant value,?

objective-c - xCode 5/iOS 7 中的 UILabel 对齐行为是否发生了变化?

cocoa - 添加测试目标时 Xcode 5 抛出 "Library not loaded"错误

c++ - OpenCV 3.1 升级导致 Linux 上的链接器错误

10'000 行后控制台中的 c++ 错误背景颜色

c++ - 用qt解析html?

iOS 本地化在 Xcode 中不适用于 Objective-C 中的自定义标签

ios - Xcode 6.1 中的 Mach-O 链接器错误

c++ - 在模板链表中使用友元函数时出现链接错误