我试图在C中运行一些基本的libCurl代码,但是我注意到,尽管我尝试过,我的程序在初始化时会崩溃(curl_global_init()或curl_easy_init())。即使有了这个小小的测试,坠机程序。我的2个printf() --无论是在之前还是之后--都没有显示出来。
我得到一个错误代码:“使用退出代码-1073741515 (0xC0000135)完成的进程”。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
int main() {
CURL *tcurl;
printf("Before crash\n");
tcurl = curl_easy_init(); // exactly crashes in this statement.
printf("After crash\n");
curl_easy_cleanup(tcurl);
curl_global_cleanup();
return 0;
}
有人想办法帮我吗?
我在Windows 10上,我用Cmake编译。
非常感谢!
发布于 2022-10-13 12:07:21
我今天也有类似的问题。下面是GDB堆栈跟踪。
#1 0x0000555555d99d5d in CRYPTO_STATIC_MUTEX_lock_write ()
#2 0x0000555555d22d4a in CRYPTO_get_ex_new_index ()
#3 0x00005555557b37f3 in ossl_init ()
#4 0x000055555578054b in global_init ()
#5 0x00005555557808e9 in curl_easy_init ()
这是因为与我的程序链接的另一个库( curl库除外)自定义编译了SSL和ZLIB库。
我把图书馆搬走了,它开始正常工作了。
把它贴在这里,这样就可以帮到你了。
然而,这是在linux中。类似地,在windows上可能有一些SSL或密码包正在为您创建问题。只需检查您下载的curl库是基于WinSSL还是基于OpenSSL。这可能会给你一些想法。
https://stackoverflow.com/questions/50349623
复制相似问题