我刚刚下载了assimp 3.0
库并使用 cmake 构建所需的 make 文件,然后编译并构建库本身,该过程成功(对 StepFile.h 进行少量修改),
我的 assimp header 文件夹位于:
block 引用>/usr/local/include
我的 libassimp.a 位于:
block 引用>/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/