首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试在Linux上使用mingw编译Windows项目时没有sys/bsdtyes.h,winsock2.h中包含

尝试在Linux上使用mingw编译Windows项目时没有sys/bsdtyes.h,winsock2.h中包含
EN

Stack Overflow用户
提问于 2021-06-12 22:02:09
回答 1查看 50关注 0票数 0

我正在尝试在Linux上编译一个windows程序(一个相当简单的程序,它只显示一个窗口并播放一个正弦波)。为了确保这不是一个X-Y问题,我试着这样做是为了我自己的方便,因为我太习惯我的Linux热键,工作流等。

无论如何,我所做的就是安装g++-mingw-w64,从mingw sourceforge (https://sourceforge.net/projects/mingw/files/MinGW/Base/w32api/w32api-5.0.2/)获取一个w32api.tar.xz,将其解压到我的项目目录中,按照本文(https://www.linux.org/threads/how-to-use-windows-h-c.28353/#post-88213)中的描述获取libgcc_s_sjlj-1.dll,然后尝试使用以下命令编译该项目

代码语言:javascript
运行
复制
i686-w64-mingw32-g++ -I w32api/include/ -L w32api/lib/ source/win32_handmade_linux.cpp

我得到的是:

代码语言:javascript
运行
复制
In file included from w32api/include/winsock2.h:62,
                 from w32api/include/_winsock.h:50,
                 from w32api/include/windows.h:85,
                 from source/win32_handmade_linux.cpp:30:
w32api/include/winsock.h:54:10: fatal error: sys/bsdtypes.h: No such file or directory
   54 | #include <sys/bsdtypes.h>
      |          ^~~~~~~~~~~~~~~~
compilation terminated.

用谷歌搜索并没有什么真正的帮助;我在系统上的任何地方都找不到这个文件,包括我的Windows安装在另一个硬盘上。我很困惑。我不得不说,我完全没有跨平台编译的经验,所以可能我一开始就做了一些愚蠢的事情,只是没有意识到而已。

也许我在这一步走错了?我需要的所有特定于windows的头文件都是

代码语言:javascript
运行
复制
#include <windows.h>
#include <xinput.h>
#include <dsound.h>

但也许无论如何都太难实现了,我应该放弃这个想法,只需在VM下编译和运行程序,并在Linux上开发它?

EN

回答 1

Stack Overflow用户

发布于 2021-06-13 22:54:10

所以,就像@BrechtSanders告诉我的那样,如果我已经安装了w32api,我就不需要单独的mingw或类似的东西。

实际上,我所做的是找到了mingw附带的头文件(在我的系统上是/usr/share/mingw-w64/include/),找到了libgdi32.a (/usr/i686-w64-mingw32/lib/libgdi32.a),并将编译命令更改为

代码语言:javascript
运行
复制
i686-w64-mingw32-g++ -I /usr/share/mingw-w64/include/ win32_handmade_linux.cpp /usr/i686-w64-mingw32/lib/libgdi32.a

同时删除伪造的DLL和w32api子目录。一切正常!此外,经过一些修补之后(我必须在我的wine配置中将Z:\\usr\\lib\\gcc\\i686-w64-mingw32\\9.3-win32\\设置为system.reg中的path ),得到的可执行文件可以在wine下完美地运行!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67949563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档