mingw compile libuv

mingw compile libuv

 

http://docs.libuv.org/en/v1.x/
https://libuv-docs-chinese.readthedocs.io/zh/latest/
https://luohaha.github.io/Chinese-uvbook/source/introduction.html
https://github.com/theanarkh/read-libuv-code
https://zhuanlan.zhihu.com/p/60508184

 

Compile failed in mingw64

https://github.com/libuv/libuv/commit/be8e237a8e462f8517392eccf0f94a30d16d7ef3

 

win: define ERROR_ELEVATION_REQUIRED for MinGW #1195

https://github.com/libuv/libuv/pull/1195

 

mingw32-make -f Makefile.mingw

最终在根目录下生成静态库libuv.a

需要注意的是libuv依赖库-lPsapi 和-lIPHLPAPI,在引入libuv时在后面引入他们即可

复制代码
c:\Users\Administrator\Downloads\libuv-v1.10.2>mingw32-make -f Makefile.mingw
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/fs-poll.o src/fs-poll.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/inet.o src/inet.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/threadpool.o src/threadpool.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/uv-common.o src/uv-common.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/version.o src/version.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/async.o src/win/async.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/core.o src/win/core.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/detect-wakeup.o src/win/detect-wakeup.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/dl.o src/win/dl.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/error.o src/win/error.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/fs-event.o src/win/fs-event.c
src/win/fs-event.c: In function 'file_info_cmp':
src/win/fs-event.c:356:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (str_len != (file_name_len / sizeof(WCHAR)))
               ^~
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/fs.o src/win/fs.c
src/win/fs.c: In function 'fs__scandir':
src/win/fs.c:876:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (status == STATUS_INVALID_PARAMETER)
              ^~
src/win/fs.c: In function 'fs__realpath':
src/win/fs.c:1802:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (fs__realpath_handle(handle, (char**) &req->ptr) == -1) {
                                                       ^~
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/getaddrinfo.o src/win/getaddrinfo.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/getnameinfo.o src/win/getnameinfo.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/handle.o src/win/handle.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/loop-watcher.o src/win/loop-watcher.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/pipe.o src/win/pipe.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/poll.o src/win/poll.c
src/win/poll.c: In function 'uv__fast_poll_cancel_poll_req':
src/win/poll.c:153:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (result == SOCKET_ERROR) {
              ^~
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/process-stdio.o src/win/process-stdio.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/process.o src/win/process.c
In file included from src/win/req-inl.h:25:0,
                 from src/win/process.c:34:
src/win/process.c: In function 'make_program_env':
src/win/process.c:736:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   assert(env_len == ptr - dst_copy);
                  ^
src/win/process.c:796:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (var_size != len-1) { /* race condition? */
                      ^~
In file included from src/win/req-inl.h:25:0,
                 from src/win/process.c:34:
src/win/process.c:812:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   assert(env_len == (ptr - dst));
                  ^
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/req.o src/win/req.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/signal.o src/win/signal.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/stream.o src/win/stream.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/tcp.o src/win/tcp.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/thread.o src/win/thread.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/timer.o src/win/timer.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/tty.o src/win/tty.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/udp.o src/win/udp.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/util.o src/win/util.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/winapi.o src/win/winapi.c
gcc -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc -Isrc/win -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -c -o src/win/winsock.o src/win/winsock.c
ar crs libuv.a src/fs-poll.o src/inet.o src/threadpool.o src/uv-common.o src/version.o src/win/async.o src/win/core.o src/win/detect-wakeup.o src/win/dl.o src/win/error.o src/win/fs-event.o src/win/fs.o src/win/getaddrinfo.o src/win/getnameinfo.o src/win/handle.o src/win/loop-watcher.o src/win/pipe.o src/win/poll.o src/win/process-stdio.o src/win/process.o src/win/req.o src/win/signal.o src/win/stream.o src/win/tcp.o src/win/thread.o src/win/timer.o src/win/tty.o src/win/udp.o src/win/util.o src/win/winapi.o src/win/winsock.o

c:\Users\Administrator\Downloads\libuv-v1.10.2>
复制代码

 

 

=========== End

 

 
posted @   lsgxeva  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2019-06-14 正则表达式速查笔记
2019-06-14 Makefile速查笔记
2018-06-14 简单的FreeBSD 的内核编译
2018-06-14 CentOS Linux上搭建PPPoE服务器及拨号设置
2018-06-14 路由器配置PPP协议 CHAP验证 PAP验证
2018-06-14 数据包处理流程
点击右上角即可分享
微信分享提示