编译cpp-netlib v0.9时出现无法解决的外部符号错误
Unresolved external symbol error when compiling cpp-netlib v0.9
我正在尝试从Visual Studio 2010构建cpp-netlib库,但得到以下链接错误:
错误LNK2019:未解析的外部符号"bool __cdecluri boost:::::::: parse_uri_impl(类Boost::iterator_range,类std::allocator>> &uri boost:::::::: uri_parts_default_base和结构boost::网络:标签:default_string):"(parse_uri_impl@detail@uri@network@boost@@YA_NAAV iterator_range@V美元? _String_const_iterator@DU ?美元$ char_traits@D@std@@V ? allocator@D@2@@std@@@4@AAUuri_parts_default_base@1234@Udefault_string@tags@34@@Z美元)在函数bool __cdecl中引用uri boost:::::::: parse_uri、类std::分配器>、结构boost:::: http::标签::http_default_8bit_tcp_resolve>(类std:: basic_string类Std::allocator> &uri boost::::::细节:uri_parts和):"basic_string@DU ?美元($ parse_uri@V ? char_traits@D@std@@V ? allocator@D@2@@std@@Uhttp_default_8bit_tcp_resolve@tags@http@network@boost@@@detail@uri@network@boost@@YA_NAAV美元? basic_string@DU美元? char_traits@D@std@@V美元? allocator@D@2@@std@@AAU美元? uri_parts@Uhttp_default_8bit_tcp_resolve@tags@http@network@boost@@@0123@@Z美元)
稍微挖掘一下,发现这可能与我使用的Boost版本(1.46.1)有关,但我试着对1.47.0和1.45.0进行编译,并得到相同的错误。
需要什么来编译这个库?
经过大量的搜索,我找到了这篇文章,这篇文章来自库的创建者,提到:
- 一个选项,用于关闭与宏(BOOST_NETWORK_NO_LIB)链接的所需外部库。使用前面定义的这个宏任何cpp-netlib头文件都包含(或在命令行上)在命名空间中成为外部函数或只是自由函数的函数级别被标记为"内联",并将其定义拉入相应地在每个翻译单元中。这是针对杰夫·加兰的而其他人则担心使用时需要外部库Cpp-netlib在0.9之前一直是头文件。我仍然纠结于将仅标头行为设置为a的想法默认的,但我没有嫁给"默认的外部库"决定。
如果我在我的cpp-netlib头文件之前添加宏定义,我就可以编译了,像这样:
#define BOOST_NETWORK_NO_LIB
#include <boost/network/protocol/http/client.hpp>
在第二篇文章中,我发现也有提到"你需要构建/链接针对uri库",这听起来可能是一个更好的解决方案。
不幸的是,我对c++和boost的了解不是最好的,所以我只是用了有用的。
任何更好的方法都是受欢迎的,尽管我真正想做的是编译这个库,这样我就可以在实际使用中对它进行评估,所以我现在很高兴。
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 节俭并发:未解决的外部问题
- 未解决的外部链接问题
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- Visual Studio 2017 中的 QtMetaObject 未解决的外部错误
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 解释未解决的外部C++
- 矛盾的未解决的外部符号+未使用的库与VS2017和FFMPEG 4
- 函数路径追加上未解决的外部符号错误
- Lapack函数DGTSV通过C /Visual Studio提供未解决的外部符号
- 运算符过载上未解决的外部符号
- qfilesystemwatcher未解决的外部
- C 未解决的外部符号(公共静态INT)
- MIDL COM库中未解决的外部符号
- 单一实例对象的未解决外部符号链接错误
- 导出类静态常量的未解决外部符号链接错误(仅限某些项目)
- C++非常简单的未解决外部
- 无法解决外部符号错误
- 使用qt模板时无法解决外部问题
- 如何纠正不一致的未解决外部错误