移植到linux平台

阿容 发布于 2016/09/05 16:01
阅读 612
收藏 0

请教各位一个问题

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

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

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


加载中
0
您的好友
您的好友

不能 

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

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

0
GestureWei
GestureWei
把win32的api改为对应linux的api实现,或者用标准c和c++库,或者用其他可移植的第三方库实现
GestureWei
GestureWei
回复 @阿容 : 可以用CodeBlocks这类IDE来将你的代码组织到linux平台上,然后配置好相关编译环境,编译,并修正相关错误,例如API方面、数据类型方面的
JenkinZhou
JenkinZhou
回复 @阿容 : 建议用IDE,eclipse或者qt,导入你的代码,编译然后修改错误。既然你用的winapi不多,那么应该很快就能搞定。
阿容
阿容
我用的是stl和poco的框架. 应该改动不会太大. 想在windows下编译成可运行在linux的, 具体怎么做呢. 谢谢
0
eechen
eechen
我听说过在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
0
ked
ked
看你是否使用了windows的api,如果大量使用windows api或者mfc,那就基本不可能。如果只用了boost和stl等跨平台的第三方库,一般还是可以迁移的,但是会有坑。至于编译成linux可执行文件,一是把代码放到linux机器上编译,二是在windows上mingw交叉编译。总之基于第三方跨平台库是可以实现你的要求的,编译不是问题。
0
ked
ked
从你的描述看,基本上可以肯定你大量使用了windows的api,如果要迁移,要重写很多代码:包括但不限于网络通讯、字符串、service。不涉及ui那就还好。把网络方面替换成libev库,CString换成stl。如果代码框架合理,业务代码可以复用能省不少时间。
0
geminiblue
geminiblue

真麻烦,偷偷滴装个windows虚拟机,打枪滴不要

0
刘大神
刘大神

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

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

0
阿容
阿容

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

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

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

0
阿容
阿容

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

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

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

返回顶部
顶部