移植到linux平台

发布于 2021-11-29 15:06:57 字数 183 浏览 914 评论 12

请教各位一个问题

我目前是在windows+vs2010下开发的代码(以windows services方式运行),

用户现在提出需要在linux下运行.

这个CodeBlocks是否可以在windows下将项目编译为可以在linux平台下运行的可执行程序?


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

私藏温柔 2021-12-03 22:18:32

vs2015, vc++ for linux , vm workstation , lubuntu

首先编译poco框架, 然后创建一个unix项目hello world, 可以在虚拟机上执行了.

下一步准备编译我自己的项目文件了.

执手闯天涯 2021-12-03 22:18:13

谢谢各位大神回复.  项目主要用了stl和poco框架, 应该改动不会太大.

因为是linux的小白, 所以想在windows下使用工具,编译成linux下可执行的程序即可.

可能会需要把项目文件转换为linux的makefile, 有没有什么工具, 可以直接导入项目,然后编译即可, 越简单越好. 谢谢啦

天涯离梦残月幽梦 2021-12-03 22:17:08

只要没用到相关的平台库,就可以移植到linux下面用g++重新编译;如果用到了就替换相关的库,用宏区别系统!

话说,搞死一个程序员只要改3次需求就可以了

旧伤慢歌 2021-12-03 22:13:34

从你的描述看,基本上可以肯定你大量使用了windows的api,如果要迁移,要重写很多代码:包括但不限于网络通讯、字符串、service。不涉及ui那就还好。把网络方面替换成libev库,CString换成stl。如果代码框架合理,业务代码可以复用能省不少时间。

风柔一江水 2021-12-03 22:11:34

看你是否使用了windows的api,如果大量使用windows api或者mfc,那就基本不可能。如果只用了boost和stl等跨平台的第三方库,一般还是可以迁移的,但是会有坑。至于编译成linux可执行文件,一是把代码放到linux机器上编译,二是在windows上mingw交叉编译。总之基于第三方跨平台库是可以实现你的要求的,编译不是问题。

情痴 2021-12-03 22:04:24

我听说过在Linux上用GCC交叉编译构建Windows二进制,但反过来Windows上用VS就未必行了,至少我没听说过微软VS支持编译死对头二进制Linux文件.

在Ubuntu/Debian上交叉编译Windows版FileZilla:

https://wiki.filezilla-project.org/Cross_Compiling_FileZilla_3_for_Windows_under_Ubuntu_or_Debian_GNU/Linux

在Linux上交叉编译Windows版Geany:

http://www.geany.org/Support/CrossCompile

梦里兽 2021-12-03 21:56:38

我用的是stl和poco的框架. 应该改动不会太大. 想在windows下编译成可运行在linux的, 具体怎么做呢. 谢谢

飘然心甜 2021-12-03 21:01:57

回复
建议用IDE,eclipse或者qt,导入你的代码,编译然后修改错误。既然你用的winapi不多,那么应该很快就能搞定。

裸钻 2021-12-03 18:35:15

回复
可以用CodeBlocks这类IDE来将你的代码组织到linux平台上,然后配置好相关编译环境,编译,并修正相关错误,例如API方面、数据类型方面的

爱的故事 2021-12-03 16:34:07

把win32的api改为对应linux的api实现,或者用标准c和c++库,或者用其他可移植的第三方库实现

偏爱自由 2021-12-01 18:34:03

不能 

“一次编译到处执行”  这个是java的口号 

c/c++如果没有调用到windows相关api或者库 可以做到“一次编写 到处编译”

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文