当前位置: 首页 > 知识库问答 >
问题:

为使用boost的预开发库构建c包装时未解析的外部

呼延宪
2023-03-14

我写了一个在C语言中使用PCL和提升的库。它正在完美地构建。当我试图用C语言为它做一个包装器时 /CLR我得到了很多未解决的错误。首先,为什么Visual Studio在构建包装器时再次重建我的库?其次,为什么我得到了以下未解决的错误?:

Error   LNK2005 "protected: virtual void __cdecl pcl::Grabber::signalsChanged(void)" (?signalsChanged@Grabber@pcl@@MEAAXXZ) already defined in pcl_io_debug.lib(pcl_io_debug.dll)
Error   LNK2005 "protected: virtual void __cdecl pcl::Grabber::signalsChanged(void)" (?signalsChanged@Grabber@pcl@@MEAAXXZ) already defined in pcl_io_debug.lib(pcl_io_debug.dll)
Error   LNK2001 unresolved external symbol "public: virtual void __cdecl pcl::visualization::PCLVisualizer::FPSCallback::Execute(class vtkObject *,unsigned long,void *)" (?Execute@FPSCallback@PCLVisualizer@visualization@pcl@@UEAAXPEAVvtkObject@@KPEAX@Z)
Error   LNK2019 unresolved external symbol deflate referenced in function "protected: int __cdecl boost::iostreams::detail::zlib_base::xdeflate(int)" (?xdeflate@zlib_base@detail@iostreams@boost@@IEAAHH@Z)
Error   LNK2019 unresolved external symbol deflateEnd referenced in function "protected: void __cdecl boost::iostreams::detail::zlib_base::reset(bool,bool)" (?reset@zlib_base@detail@iostreams@boost@@IEAAX_N0@Z)
Error   LNK2019 unresolved external symbol inflate referenced in function "protected: int __cdecl boost::iostreams::detail::zlib_base::xinflate(int)" (?xinflate@zlib_base@detail@iostreams@boost@@IEAAHH@Z)
Error   LNK2019 unresolved external symbol inflateEnd referenced in function "protected: void __cdecl boost::iostreams::detail::zlib_base::reset(bool,bool)" (?reset@zlib_base@detail@iostreams@boost@@IEAAX_N0@Z)
Error   LNK2019 unresolved external symbol deflateReset referenced in function "protected: void __cdecl boost::iostreams::detail::zlib_base::reset(bool,bool)" (?reset@zlib_base@detail@iostreams@boost@@IEAAX_N0@Z)
Error   LNK2019 unresolved external symbol inflateReset referenced in function "protected: void __cdecl boost::iostreams::detail::zlib_base::reset(bool,bool)" (?reset@zlib_base@detail@iostreams@boost@@IEAAX_N0@Z)
Error   LNK2019 unresolved external symbol crc32 referenced in function "protected: void __cdecl boost::iostreams::detail::zlib_base::after(char const * &,char * &,bool)" (?after@zlib_base@detail@iostreams@boost@@IEAAXAEAPEBDAEAPEAD_N@Z)
Error   LNK2019 unresolved external symbol deflateInit2_ referenced in function "private: void __cdecl boost::iostreams::detail::zlib_base::do_init(struct boost::iostreams::zlib_params const &,bool,void * (__cdecl*)(void *,unsigned int,unsigned int),void (__cdecl*)(void *,void *),void *)" (?do_init@zlib_base@detail@iostreams@boost@@AEAAXAEBUzlib_params@34@_NP6APEAXPEAXII@ZP6AX22@Z2@Z)
Error   LNK2019 unresolved external symbol inflateInit2_ referenced in function "private: void __cdecl boost::iostreams::detail::zlib_base::do_init(struct boost::iostreams::zlib_params const &,bool,void * (__cdecl*)(void *,unsigned int,unsigned int),void (__cdecl*)(void *,void *),void *)" (?do_init@zlib_base@detail@iostreams@boost@@AEAAXAEBUzlib_params@34@_NP6APEAXPEAXII@ZP6AX22@Z2@Z)

共有2个答案

袁晋鹏
2023-03-14

实际上,我刚刚使用了BOOST\u IOSTREAMS\u NO\u LIB,这解决了大多数问题。所以在我看来,windows中的bzip2过滤器有一个问题,因为默认情况下应该禁用它,而这主要是禁用它们。对于与visualizer相关的其他问题,我在这里找到了答案

禄烨然
2023-03-14

C-CLI是一种不同的语言;它编译到一个完全不同的目标(某些.NET运行时版本/体系结构),这既是它再次构建的原因,也是您需要为这些目标配置配置链接依赖关系的原因。

我个人会将所有本机依赖项保存在本机DLL中,并在混合模式程序集中实现一个窄接口。这样,您可以将混合模式程序集的依赖项总结为捆绑任何其他本机依赖项的一个本机DLL。

 类似资料:
  • 我正在想办法解决下面的问题。 我有以下格式的结构: 这应该以以下格式从单个行字符串中解析出来: 当然,键的顺序不必与结构中元素的顺序相匹配。 Boost::勇气适合这种类型的数据吗?我如何处理这个问题?我已经浏览了示例,但是我无法从示例中获得符合我要求的代码。

  • 问题内容: 我试图将库包含在我的项目中,并且一直面临着同样的问题。我在使用Codeblocks IDE的Ubuntu 12.10上,尝试手动读取站点上的说明来安装库,但是在头文件以及使用前需要构建的库中出现错误。 然后,我通过terminalby安装了库。此后,在我的代码块程序中,可以包含类似的标题,但是当我尝试包含Filesystem库的标题( )时,出现以下错误: 我不确定如何解决此错误(特别

  • 我正试图将库包括在我的项目中,并一直面临着同样的问题。我在使用Codeblocks IDE的Ubuntu12.10上,尝试手动安装库,阅读网站上的说明,但在使用库之前,得到了带有标题的错误以及要构建的错误。 然后,我通过terminalby

  • 问题内容: 是否有人知道针对具有以下一项或多项功能的Web开发人员的最新Linux发行版的ISO映像: 可以轻松设置LAMP堆栈(易于安装的Apache 2,虚拟站点目录结构(托管),PHP的安装,mySQL的安装) 为初学者准备的Ruby / RoR 为多个存储库设置了Subversion 配置为充当Web服务器的防火墙(端口80已打开,其他不多) 已安装Python和Trac并将其与Apach

  • 问题内容: 我正在尝试编译,安装和运行一个我们称为的软件包。它包含一个从库调用该函数的文件。当前,当我运行导入包的脚本时,会收到以下错误消息: 据我了解(我是python和cython的新手),与C库的链接尚未在我的程序包中执行。实际上,我的文件如下所示: 如您所见,我的文件使用。我决定这样做是因为《Python打包用户指南》建议这样做。但是,使用Cython文档中的说明代替。通过调用链接库。如何

  • A C++ client for Redis 依赖于 c++ boost 库 It uses anet from Redis itself 在 Linux 上通过 g++ 的测试 支持分区