编译报错:undefined reference to `boost::filesystem::path::filename() const'

使用boost库编译时,显示如下错误:

CMakeFiles/1.dir/1.cpp.o: In function `categorizer::categorizer(int)':
1.cpp:(.text+0x5b8): undefined reference to `boost::filesystem::path::filename() const'
1.cpp:(.text+0x669): undefined reference to `boost::filesystem::path::filename() const'
CMakeFiles/1.dir/1.cpp.o: In function `categorizer::make_train_set()':
1.cpp:(.text+0xc53): undefined reference to `boost::filesystem::path::filename() const'
1.cpp:(.text+0xcd7): undefined reference to `boost::filesystem::path::filename() const'
CMakeFiles/1.dir/1.cpp.o: In function `categorizer::category_By_svm()':
1.cpp:(.text+0x2bbd): undefined reference to `boost::filesystem::path::filename() const'
CMakeFiles/1.dir/1.cpp.o:1.cpp:(.text+0x2c1c): more undefined references to `boost::filesystem::path::filename() const' follow
CMakeFiles/1.dir/1.cpp.o: In function `__static_initialization_and_destruction_0(int, int)':
1.cpp:(.text+0x41c6): undefined reference to `boost::system::generic_category()'
1.cpp:(.text+0x41d2): undefined reference to `boost::system::generic_category()'
1.cpp:(.text+0x41de): undefined reference to `boost::system::system_category()'
CMakeFiles/1.dir/1.cpp.o: In function `boost::system::error_code::error_code()':
1.cpp:(.text._ZN5boost6system10error_codeC2Ev[_ZN5boost6system10error_codeC5Ev]+0x17): undefined reference to `boost::system::system_category()'
CMakeFiles/1.dir/1.cpp.o: In function `boost::system::error_code::clear()':
1.cpp:(.text._ZN5boost6system10error_code5clearEv[_ZN5boost6system10error_code5clearEv]+0x17): undefined reference to `boost::system::system_category()'
CMakeFiles/1.dir/1.cpp.o: In function `boost::filesystem::directory_entry::status(boost::system::error_code&) const':
1.cpp:(.text._ZNK5boost10filesystem15directory_entry6statusERNS_6system10error_codeE[_ZNK5boost10filesystem15directory_entry6statusERNS_6system10error_codeE]+0x36): undefined reference to `boost::filesystem::directory_entry::m_get_status(boost::system::error_code*) const'
CMakeFiles/1.dir/1.cpp.o: In function `boost::filesystem::directory_entry::symlink_status(boost::system::error_code&) const':
1.cpp:(.text._ZNK5boost10filesystem15directory_entry14symlink_statusERNS_6system10error_codeE[_ZNK5boost10filesystem15directory_entry14symlink_statusERNS_6system10error_codeE]+0x36): undefined reference to `boost::filesystem::directory_entry::m_get_symlink_status(boost::system::error_code*) const'
CMakeFiles/1.dir/1.cpp.o: In function `boost::filesystem::detail::dir_itr_imp::~dir_itr_imp()':
1.cpp:(.text._ZN5boost10filesystem6detail11dir_itr_impD2Ev[_ZN5boost10filesystem6detail11dir_itr_impD5Ev]+0x24): undefined reference to `boost::filesystem::detail::dir_itr_close(void*&, void*&)'
CMakeFiles/1.dir/1.cpp.o: In function `boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&)':
1.cpp:(.text._ZN5boost10filesystem18directory_iteratorC2ERKNS0_4pathE[_ZN5boost10filesystem18directory_iteratorC5ERKNS0_4pathE]+0x57): undefined reference to `boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, boost::system::error_code*)'
CMakeFiles/1.dir/1.cpp.o: In function `boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&, boost::system::error_code&)':
1.cpp:(.text._ZN5boost10filesystem18directory_iteratorC2ERKNS0_4pathERNS_6system10error_codeE[_ZN5boost10filesystem18directory_iteratorC5ERKNS0_4pathERNS_6system10error_codeE]+0x5a): undefined reference to `boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, boost::system::error_code*)'
CMakeFiles/1.dir/1.cpp.o: In function `boost::filesystem::directory_iterator::increment()':
报错原因:没有链接动态库文件

 

解决方案:使用g++ `pkg-config opencv --cflags` 1.cpp -o 1 `pkg-config opencv --libs` -lboost_thread -lboost_filesystem -lpthread -lboost_system   命令进行编译,即可通过。

有问题欢迎提问!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: boost::filesystem::path是一个C++库中的类,用于处理文件路径和文件名。它提供了一些方法来操作路径,例如连接路径、获取路径的父目录、获取路径的文件名等。这个类可以跨平台使用,因为它可以处理不同操作系统下的路径格式。 ### 回答2: boost::filesystem::path是一个C++库,用于处理文件和目录路径的类。它提供了一个通用的文件系统路径形式,并允许开发人员在不同的平台上使用相同的API操作文件和目录。boost::filesystem::path库可以帮助开发人员编写可移植的、跨平台的代码,从而减少开发时间和复杂度。 boost::filesystem::path库具有以下特点: 1. 支持多种文件系统路径表示形式。boost::filesystem::path库可以处理多种文件系统路径表示形式,包括Windows风格的路径(例如C:\Windows\System32)和Unix风格的路径(例如/usr/local/bin)。 2. 支持路径分解和组合。boost::filesystem::path库可以将文件系统路径分解为其组成部分,如文件名、文件夹路径和文件扩展名,也可以将这些组成部分组合成完整路径。 3. 支持文件系统遍历和迭代。boost::filesystem::path库允许开发人员迭代文件系统中的所有文件和目录,并查找指定的文件或目录。 4. 支持文件和目录的创建和删除。boost::filesystem::path库可以创建新的文件和目录,并删除现有的文件和目录。 总之,boost::filesystem::path是一个非常有用的库,为开发人员提供了一个跨平台、可移植的文件系统路径类。无论开发人员在哪个平台上工作,都可以使用boost::filesystem::path库来操作文件和目录。 ### 回答3: boost::filesystem::path是一个C ++库,旨在为操作系统文件系统路径提供一种可移植、类型安全和易于使用的方法。它是Boost库中最常用的文件系统库之一,也是C++标准库中的一个重要组件。 boost::filesystem::path可以把一个字符串路径解析成一个路径对象,路径对象可以表示文件、文件夹、文件扩展名等。boost::filesystem::path库提供了一些常规文件操作函数(如路径拼接、路径分解、查询目录中文件列表等),并且这些操作都是可移植的。此外,boost::filesystem::path还提供了一些与文件系统操作相关的附加类,如directory_entry和recursive_directory_iterator。 虽然Boost库只是一个开源库,但是由于提供了如此多的功能,并且很多操作不是C++标准库的一部分,因此boost::filesystem::path可以被认为是在C++中编写可移植并非常方便的文件操作的最佳选择之一。 总的来说,boost::filesystem::path是一个非常有用的库,因为它提供了简单、可移植且易于使用的方法来操作文件和文件夹路径。使用它,可以在C ++中更轻松地编写跨平台的文件系统相关代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值