Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Assimp链接错误_C++_Xcode5_Linker Errors_Static Linking_Assimp - Fatal编程技术网

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,使它生成三个库文件,我把它包括在我的项目中,它成功了,谢谢你的回复。