相关疑难解决方法(0)

无法链接Boost正则表达式

我目前正在尝试通过KIT编译Contraction Hierachies实现,这需要Boost :: Regex.提供的Makefile已经确保(我也手动仔细检查过)g ++随-lboost_regex交换机提供.如果没有安装库,g ++会抱怨.

所以我从我的包源安装了库,并再次尝试编译.这次我得到了很多关于Boost :: Regex的链接器错误.这是一个简短的摘录:

main.o: In function `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::unwind_extra_block(bool)':
main.cpp:(.text._ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE18unwind_extra_blockEb[_ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE18unwind_extra_blockEb]+0x2c): undefined reference to `boost::re_detail::put_mem_block(void*)'
main.o: In function `void boost::re_detail::raise_error<boost::regex_traits_wrapper<boost::regex_traits<char, boost::cpp_regex_traits<char> > > >(boost::regex_traits_wrapper<boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::error_type)':
main.cpp:(.text._ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[_ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE]+0x7d): undefined reference to `boost::re_detail::get_default_error_string(boost::regex_constants::error_type)'
main.cpp:(.text._ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[_ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE]+0xb1): undefined reference to `boost::re_detail::raise_runtime_error(std::runtime_error const&)'
main.cpp:(.text._ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[_ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE]+0xcb): undefined reference to `boost::re_detail::get_default_error_string(boost::regex_constants::error_type)'
main.o: In function `__gnu_cxx::__normal_iterator<char const*, std::string> boost::re_detail::re_is_set_member<__gnu_cxx::__normal_iterator<char const*, std::string>, char, boost::regex_traits<char, boost::cpp_regex_traits<char> >, unsigned int>(__gnu_cxx::__normal_iterator<char …
Run Code Online (Sandbox Code Playgroud)

linker gcc boost linker-errors boost-regex

12
推荐指数
1
解决办法
2万
查看次数

如何摆脱g ++ hash_map弃用警告?

当我编写一个使用hash_map的c ++应用程序时,我在g ++ 4.3.2上得到了这个警告:

您正在使用已弃用的标头.要消除此警告,请使用ANSI标准头文件或使用hte -Wno-deprecated编译器标志.

9> #include <ext/hash_map>
Run Code Online (Sandbox Code Playgroud)

什么包括取代这个?我在谷歌搜索了一段时间,除了有类似问题但没有解决方案的人之外找不到任何东西.

c++ g++ hashmap deprecated

9
推荐指数
2
解决办法
1万
查看次数

对构造函数的调用不能出现在常量表达式中

我很抱歉我的新手问题,但我对C++知之甚少.任何人都可以回答为什么我在编译下面的代码时得到错误"错误:对构造函数的调用不能出现在常量表达式中";

class EliminationWeight
{
 public:
    typedef double Type;
    static const Type MAX_VALUE = __DBL_MAX__;
    static const Type MIN_VALUE = -__DBL_MAX__;
};
Run Code Online (Sandbox Code Playgroud)

我使用Ubuntu 12.04和随附的gcc.这不是我的代码,我知道这个代码可能100%正常工作(可能在旧版本的gcc或其他编译器中).有没有快速解决方法?

在此先感谢您的回答,这实际上是我第一次问SO.

c++

2
推荐指数
1
解决办法
5248
查看次数

标签 统计

c++ ×2

boost ×1

boost-regex ×1

deprecated ×1

g++ ×1

gcc ×1

hashmap ×1

linker ×1

linker-errors ×1