C++ Assimp链接错误
我刚刚下载了C++ Assimp链接错误,c++,xcode5,linker-errors,static-linking,assimp,C++,Xcode5,Linker Errors,Static Linking,Assimp,我刚刚下载了assimp3.0库,并用cmake构建了所需的make文件,然后编译并构建了库本身。这个过程是成功的(对StepFile.h几乎没有修改) 我的助理标题文件夹位于: /usr/本地/包括 我的libassimp.a位于: /usr/local/lib 但是,当我在命令行项目中指定库文件和头文件并尝试测试我的项目时,会出现以下错误: Undefined symbols for architecture x86_64: "Assimp::Importer::Importer()", r
assimp3.0
库,并用cmake构建了所需的make文件,然后编译并构建了库本身。这个过程是成功的(对StepFile.h几乎没有修改)
我的助理标题文件夹位于:
/usr/本地/包括
我的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
添加到其他链接器标志时,我得到以下错误:
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)
架构x86_64的未定义符号:
“crc32”,引用自:
_解压libassimp.a(unzip.c.o)中的ZReadCurrentFile
“_get_crc_table”,引用自:
_在libassimp.a(unzip.c.o)中解压缩当前文件3
“充气”,引用自:
libassimp.a(XGLLoader.cpp.o)中的Assimp::XGLImporter::InternReadFile(std:uu 1::basic_字符串常量&,aiScene*,Assimp::IOSystem*)
libassimp.a(BlenderLoader.cpp.o)中的Assimp::BlenderImporter::InternReadFile(std:uu 1::basic_字符串常量&,aiScene*,Assimp::IOSystem*)
libassimp.a(XFileParser.cpp.o)中的Assimp::XFileParser::XFileParser(std::u 1::vector const&)
_解压libassimp.a(unzip.c.o)中的ZReadCurrentFile
“_inflateEnd”,引用自:
libassimp.a(XGLLoader.cpp.o)中的Assimp::XGLImporter::InternReadFile(std:uu 1::basic_字符串常量&,aiScene*,Assimp::IOSystem*)
libassimp.a(BlenderLoader.cpp.o)中的Assimp::BlenderImporter::InternReadFile(std:uu 1::basic_字符串常量&,aiScene*,Assimp::IOSystem*)
libassimp.a(XFileParser.cpp.o)中的Assimp::XFileParser::XFileParser(std::u 1::vector const&)
_在libassimp.a(unzip.c.o)中解压zCloseCurrentFile
“_inflateInit2_u2;”,引用自:
libassimp.a(XGLLoader.cpp.o)中的Assimp::XGLImporter::InternReadFile(std:uu 1::basic_字符串常量&,aiScene*,Assimp::IOSystem*)
libassimp.a(BlenderLoader.cpp.o)中的Assimp::BlenderImporter::InternReadFile(std:uu 1::basic_字符串常量&,aiScene*,Assimp::IOSystem*)
libassimp.a(XFileParser.cpp.o)中的Assimp::XFileParser::XFileParser(std::u 1::vector const&)
_在libassimp.a(unzip.c.o)中解压缩当前文件3
“_inflateReset”,引用自:
libassimp.a(XFileParser.cpp.o)中的Assimp::XFileParser::XFileParser(std::u 1::vector const&)
“_inflateSetDictionary”,引用自:
libassimp.a(XFileParser.cpp.o)中的Assimp::XFileParser::XFileParser(std::u 1::vector const&)
ld:找不到架构x86_64的符号
叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我重建了assimp,使生成文件生成三个库文件,即libassimp.3.0.255.dylib
libassimp.3.dylib
libassimp.dylib
,我将它们包含在我的项目中,并且成功了。我最近也遇到了同样的问题。对我来说,实际的解决方案是确保我使用编译的libassimp.a
的项目也链接到libz.dylib
,而不是将assimp转换成.dylib。你为x86_64
构建了吗?@presiuslitelsnoflek不介意我重新构建assimp,使它生成三个库文件,我把它包括在我的项目中,它成功了,谢谢你的回复。