libcurl与curlpp结合使用时会出现编译错误

Compile errors when using libcurl in combination with curlpp

本文关键字:编译 错误 curlpp 结合 libcurl      更新时间:2023-10-16

我想发送一个http POST请求到服务器使用libcurl和cURLpp。当我试图编译我的程序时,我得到了这些错误。我不认为错误来自libcurl或curlpp,所以我一定是做错了什么。
有人知道解决办法吗?

Severity    Code    Description Project File    Line
Error   C2491   'curlpp::internal::OptionContainer<OptionType>::getValue': definition of dllimport function not allowed Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppinternaloptioncontainer.inl 60
Error   C2491   'curlpp::internal::OptionContainer<OptionType>::OptionContainer': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppinternaloptioncontainer.inl 39
Error   C2491   'curlpp::internal::OptionContainer<OptionType>::OptionContainer': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppinternaloptioncontainer.inl 45
Error   C2491   'curlpp::internal::OptionContainer<OptionType>::setValue': definition of dllimport function not allowed Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppinternaloptioncontainer.inl 53
Error   C2491   'curlpp::internal::OptionContainer<OptionType>::getHandleOptionValue': definition of dllimport function not allowed Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppinternaloptioncontainer.inl 67
Error   C2491   'curlpp::internal::OptionSetter<OptionValueType,optionType>::setOpt': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppinternaloptionsetter.inl    36
Error   C2491   'curlpp::internal::OptionSetter<std::string,optionType>::setOpt': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppinternaloptionsetter.inl    45
Error   C2491   'curlpp::internal::OptionSetter<std::list<std::string,std::allocator<_Ty>>,optionType>::setOpt': definition of dllimport function not allowed   Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppinternaloptionsetter.inl    54
Error   C2491   'curlpp::Option<OT>::Option': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   45
Error   C2491   'curlpp::Option<OT>::Option': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   52
Error   C2491   'curlpp::Option<OT>::Option': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   63
Error   C2491   'curlpp::Option<OT>::~Option': definition of dllimport function not allowed Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   71
Error   C2491   'curlpp::Option<OT>::setValue': definition of dllimport function not allowed    Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   86
Error   C2491   'curlpp::Option<OT>::updateMeToOption': definition of dllimport function not allowed    Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   99
Error   C2491   'curlpp::Option<OT>::clear': definition of dllimport function not allowed   Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   107
Error   C2491   'curlpp::Option<OT>::getValue': definition of dllimport function not allowed    Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   117
Error   C2491   'curlpp::OptionTrait<OptionType,opt>::OptionTrait': definition of dllimport function not allowed    Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   125
Error   C2491   'curlpp::OptionTrait<OptionType,opt>::OptionTrait': definition of dllimport function not allowed    Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   131
Error   C2491   'curlpp::OptionTrait<OptionType,opt>::clone': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   139
Error   C2491   'curlpp::OptionTrait<OptionType,opt>::updateHandleToMe': definition of dllimport function not allowed   Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   152
Error   C2491   'curlpp::NoValueOptionTrait<option>::NoValueOptionTrait': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   160
Error   C2491   'curlpp::NoValueOptionTrait<option>::clone': definition of dllimport function not allowed   Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   168
Error   C2491   'curlpp::NotAvailableOptionTrait<OptionType>::NotAvailableOptionTrait': definition of dllimport function not allowed    Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   178
Error   C2491   'curlpp::NotAvailableOptionTrait<OptionType>::NotAvailableOptionTrait': definition of dllimport function not allowed    Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   185
Error   C2491   'curlpp::NotAvailableOptionTrait<OptionType>::clone': definition of dllimport function not allowed  Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   193
Error   C2491   'curlpp::NotAvailableOptionTrait<OptionType>::updateHandleToMe': definition of dllimport function not allowed   Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1curlppincludecurlppoption.inl   201
Error   C3867   'std::basic_ostringstream<char,std::char_traits<char>,std::allocator<char>>::str': non-standard syntax; use '&' to create a pointer to member   Projekt1    c:usersotuser1documentsvisual studio 2015projectsprojekt1projekt1main.cpp   203

看起来头试图从dll(没有CURLPP_STATICLIB定义)导入,但也提供定义,他们不应该从dll导入时这样做。

可能你需要在包含curlpp头文件之前定义CURLPP_STATICLIB,或者你可以修改你在Visual Studio中设置库的方式。虽然我不能真正解释你应该看起来,因为我不是很有经验的dll和Visual Studio。

对于一个更具体的答案,请提供一些信息,你是如何包括curlpp到你的项目/到visual studio。