编译文件:https://wwwk.lanzouf.com/ifcAO0lcvi1e
大一,水平低下,勿喷,求解决
#include <stdio.h>
#include "curl/curl/curl.h"
void send_verification_code(const char* email, const char* code) {
CURL *curl;
CURLcode res;
char post_data[256];
sprintf(post_data, "from=example@qq.com&to=%s&subject=Verification Code&body=Your verification code is %s.", email, code);
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "smtp://smtp.qq.com:25");
curl_easy_setopt(curl, CURLOPT_USERNAME, "email");
curl_easy_setopt(curl, CURLOPT_PASSWORD, "password");
curl_easy_setopt(curl, CURLOPT_MAIL_FROM, "email");
curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, email);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_data);
res = curl_easy_perform(curl);
if (res != CURLE_OK)
printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
curl_easy_cleanup(curl);
}
curl_global_cleanup();
}
int main(void) {
send_verification_code("emil", "code");
return 0;
}
C:\Users\10929\Desktop\118\main.o main.c:(.text+0xfe): undefined reference to `__imp_curl_global_init'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x107): undefined reference to `__imp_curl_easy_init'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x146): undefined reference to `__imp_curl_easy_setopt'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x170): undefined reference to `__imp_curl_easy_setopt'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x19a): undefined reference to `__imp_curl_easy_setopt'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x1c4): undefined reference to `__imp_curl_easy_setopt'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x1ee): undefined reference to `__imp_curl_easy_setopt'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x218): more undefined references to `__imp_curl_easy_setopt' follow
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x22b): undefined reference to `__imp_curl_easy_perform'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x24b): undefined reference to `__imp_curl_easy_strerror'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x26d): undefined reference to `__imp_curl_easy_cleanup'
C:\Users\10929\Desktop\118\main.o main.c:(.text+0x276): undefined reference to `__imp_curl_global_cleanup'
c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe main.o: bad reloc address 0x0 in section `.pdata'
C:\Users\10929\Desktop\118\collect2.exe [Error] ld returned 1 exit status
25 C:\Users\10929\Desktop\118\Makefile.win recipe for target '项目1.exe' failed
# Project: 项目1
# Makefile created by Dev-C++ 5.10
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
OBJ = main.o
LINKOBJ = main.o
LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -L"C:/Users/10929/Desktop/118/curl/curl" ../WinMM.Lib ../Wldap32.Lib ../WS2_32.Lib ../AdvAPI32.Lib curl/libcurl.lib
INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include" -I"C:/Users/10929/Desktop/118/curl/lib"
CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++" -I"C:/Users/10929/Desktop/118/curl/lib"
BIN = 项目1.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS) -L"curl/lib"
RM = rm.exe -f
.PHONY: all all-before all-after clean clean-custom
all: all-before $(BIN) all-after
clean: clean-custom
${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)
main.o: main.c
$(CC) -c main.c -o main.o $(CFLAGS)
你这样改一下试试,假设c:/xxx/curl/lib目录下面包含 libcurl.lib
原始:LIBS = -static-libgcc -L"C:/Users/10929/Desktop/118/curl/curl" curl/libcurl.lib
====》改成:LIBS = -static-libgcc -L"c:/xxx/curl/lib" libcurl.lib
原始:CFLAGS = $(INCS) -L"curl/lib"
====》改成:CFLAGS = $(INCS) -L"c:/xxx/curl/lib"
在Windows环境中使用Dev-C++ 5.10发送QQ邮箱邮件,可能会出现一些错误。这可能是由于您使用的Curl静态库与Dev-C++不兼容造成的。
为了解决这个问题,您可以尝试以下步骤:
1.确保您的Dev-C++版本是最新的,并且已经安装了最新的Curl库。
2.在Dev-C++中打开项目属性设置静态库路径,确保静态库路径正确无误。
3.检查您的代码中是否有任何语法错误或缺少的库引用。
4.如果仍然无法解决问题,可以尝试使用其他编译器或其他版本的Curl库。
5.查看curl库的版本是否与你的dev-c++兼容。
如果仍然有问题,请提供更多的细节,以便我们能更好的帮助您。
链接里面加入-l 把对应的库名字加入进来,这样子链接才用这些库。否则只是找到了,没有链接,出现了未定义。
通过curl实现邮件发送功能,通过此功能,可以将一些配置信息自动发送到指定邮箱,满足自动运维要求。
@echo off
rem 使用curl实现邮件发送
rem -------------------------------------------
rem 参数
set smtp="smtp://smtp.sina.com"
set mail_from=发件地址@sina.com
set mail_to=收件地址@sina.com
set data=mail.txt
set user="发件人用户名:发件人密码"
rem -------------------------------------------
rem 编写邮件头消息
echo From:%mail_from% > %data%
echo To:%mail_to% >> %data%
echo Subject:邮件内容标题 %date%>> %data%
echo.>> %data%
echo 这里填写具体的邮件内容 >> %data%
rem 例如:获取当前的外网地址信息
rem curl ifconfig.me >> %data%
rem -------------------------------------------
rem 发送邮件
curl --verbose -s --url "%smtp%" --mail-from %mail_from% --mail-rcpt %mail_to% --upload-file %data% --user %user%
rem 删除临时文件
del %data%
pause