我有时会遇到这样的问题:
1-我在上开发了一个工作的C++/C程序,它使用了一些库(如platform-independent,、Boost、GNU科学库、DCMTK等):这些库通常可以从apt获得,并且安装正确)。
我还想交叉编译从Ubuntu到Windows运行的程序,使用mingw (x86_64-w64-mingw32-g++)。
3
是否有一种通用的方法可以轻松地将linux版本(或源代码)中的任何库“转换”为mingw安装,以便它可以用于构建程序的windows?每个库似乎都有自己独立的复杂的混合安装指令。
发布于 2014-08-10 23:05:40
当然,您不能将Linux库直接转换为Windows,因为它们几乎可以肯定地使用Linux系统调用和调用库(例如C运行时库),这些库是Linux特有的(即使代码没有直接调用任何其他函数,编译器也可以隐式地添加函数调用,例如模板函数中的内存分配调用等等)
您可能会找到可以安装的“替换”Windows库,但是的,许多库可能附带了Windows安装程序,这使得不使用葡萄酒或拥有“真正的”Windows就很难安装(但是您需要这样做来测试您的应用程序,所以我不确定它到底有多大的障碍)。
有些库可以在Linux下作为交叉编译器来构建,如果它们是以可移植的方式编写的,这可能比安装现成的Windows库更容易选择。但前提是你能找到来源..。
发布于 2020-09-07 20:28:42
目前正在研究类似的东西,并遇到了一些问题,如openssl,boost,sqlite,libpcap,.
到目前为止,最好的解决方案是利用WSL2和Docker。
https://code.visualstudio.com/blogs/2020/03/02/docker-in-wsl2
WSL2是一个适用于Windows的Linux环境(利用Hyper)。
Docker允许您为窗口和Linux制作容器,它们可以相互对话。
在Linux中,我有我需要在WSL2下运行的基本代码,当我需要从windows访问它时,我会使用docker。
这不是一个完美的解决方案,但我希望它能有所帮助。
发布于 2014-09-01 20:23:49
一些Linux程序可以在Windows上通过明威编译。
下面是如何设置交叉编译器环境:How to compile a Linux program with Mingw?
https://stackoverflow.com/questions/25233272
复制相似问题