如何解决当我引用CURL库时将无法生成DLL
我正在尝试用C ++构建DLL,但是在调用CURL库时,我一直收到链接错误。
我的.h文件如下:
#pragma once
#ifdef ALTITUDE_EXPORTS
#define EXTFUNCS_API __declspec(dllexport)
#else
#define EXTFUNCS_API __declspec(dllimport)
#endif
extern "C" EXTFUNCS_API void __stdcall AssociateGuidToMetadata
(
const char* Guid,const char* MetadataName,const char* MetadataValue
);
.cpp文件中的函数看起来像
EXTFUNCS_API void __stdcall AssociateGuidToMetadata
(
const char* Guid,const char* MetadataValue
)
{
std::thread newThread1(sendPOSTrequest,(Guid,MetadataName,MetadataValue));
}
sendPostrequest函数看起来像
static void sendPOSTrequest(const char* fmt...) {
std::string result;
CURL* curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl,CURLOPT_URL,"https_some_website_here.html");
curl_easy_setopt(curl,CURLOPT_POSTFIELDS,"name=name");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if (CURLE_OK != res) {
std::cerr << "CURL error: " << res << '\n';
curl_easy_cleanup(curl);
}
}
curl_global_cleanup();
}
我很确定CURL库确实可以正常工作,因为如果我进行更改
EXTFUNCS_API void __stdcall AssociateGuidToMetadata
至:
static void AssociateGuidToMetadata
并将其从.h文件中删除,解决方案构建就很好。
我已经尝试过
- 在以下位置添加包含文件夹:属性>> C / C ++ >>常规>>其他包含目录
- 在以下位置添加库文件:属性>>链接器>>输入>>其他依赖项
image of the additional dependencies in Linker >> Input
- 在属性中添加EXTFUNCS_API >> C / C ++ >>预处理器>预处理器定义
有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。