社区
C++ 语言
帖子详情
windows下C++程序移植到linux下的问题
w364483790
2011-06-20 04:11:17
把windows下C++程序移植到linux下的问题要注意那些问题,最近接到上近命令,要把之前用C++写的一个协议解析程序移植到LINUX下运行,在网上看了些东西,但感觉还是无从下手,比如CString等windows下的东西怎么处理,求高手指点,最好尽量详细一点,因为我是菜鸟!!成分感谢!!
...全文
842
27
打赏
收藏
windows下C++程序移植到linux下的问题
把windows下C++程序移植到linux下的问题要注意那些问题,最近接到上近命令,要把之前用C++写的一个协议解析程序移植到LINUX下运行,在网上看了些东西,但感觉还是无从下手,比如CString等windows下的东西怎么处理,求高手指点,最好尽量详细一点,因为我是菜鸟!!成分感谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
KAMCHIHAU
2011-06-22
打赏
举报
回复
這個也是說明為何很多跨平台的程序,
它們的代碼量為何這麼大,
它們是一個程序,當中又有WINDOWS,又有LINUX的代碼,
w364483790
2011-06-22
打赏
举报
回复
先谢谢大家的帮助,现在在写makefile,发现这个又不会写
我现在有二个项目A(A.h,A.cpp)/B(B.h,B.cpp),A要编译成一个静态库A.a,B要编译成一个动态库B.so,但A又调用了一个动太库C.so,这个makefile要怎么写呢?我是第一次接触linux,是个菜鸟,求高手帮忙写一个,越详细越好,万分感谢!!!
hzy694358
2011-06-22
打赏
举报
回复
移植的话,就是Windows系统的API都不能用了
换用linux下的来实现就可以了
如果涉及到MFC的话,比如CString 用string
如果还有什么窗口之类的话,呵呵,不用我说了吧
独酌逸醉
2011-06-22
打赏
举报
回复
MFC是不可移植的,怎么能移植到linux?所谓的移植就是重写!
赵4老师
2011-06-22
打赏
举报
回复
直接运行在Linux下的WinXP虚拟机上不就完了。
zhaoli_1956
2011-06-22
打赏
举报
回复
[Quote=引用 8 楼 jdk_mo 的回复:]
如果你在原来的程序中大量用了Windows API的话,建议你不要移植了,重新写吧!!还少烦恼呢。。
[/Quote]
++
小小蔷薇
2011-06-22
打赏
举报
回复
直接编译,哪里有错误改哪里
wentian719
2011-06-22
打赏
举报
回复
1、先花点时间熟悉linux下c/c++程序如何编写,如楼主提到的makefile等问题;
2、尽量用夸平台库库,stl等;
3、与系统有关的实现多用宏,或者自己写函数封装;
4、一个个文件编译,一个个错误改,还是有可能的,如果代码量特别大,可以考虑重写。。
科比布莱恩特
2011-06-22
打赏
举报
回复
使用string,使用windows sdk,使用ini文件等等比较多。
干脆推翻了重写得了。
一叶之舟
2011-06-21
打赏
举报
回复
协议解析程序属于后台数据处理类的程序,应该好写的多,你还可以将他写成win32和linux下兼容的代码,方便在不同的平台下使用。
一叶之舟
2011-06-21
打赏
举报
回复
涉及UI部分的没具体做过,但非UI的代码,都是可以处理的。
一叶之舟
2011-06-21
打赏
举报
回复
1、检查涉及MFC特性的代码有多少,与linux下不兼容的API有哪些。
2、能用宏定义的进行宏定义,如win32下Sleep(1000)==linux下sleep(1),处理方法如下。
#ifndef WIN32
#defin Sleep(i) sleep(i/1000)
#endif
这样,Sleep(1000)这个WIN32下的函数在linux下也就是正常的调用。
3、数据类型尽量使用标C/C++中的,CString用sting代替,或用char []代替。
自由建客
2011-06-21
打赏
举报
回复
几无可能
futurepi
2011-06-21
打赏
举报
回复
学习一下
KAMCHIHAU
2011-06-20
打赏
举报
回复
不可能移植的,不是想像中那么簡單的
gulunhua
2011-06-20
打赏
举报
回复
你的程序是看样子事用MFC来写的,基本上就别想改成linux下能运行的,还是重写吧,如果一开始只用一些基和标准的网络API来写程序,像:send,recv,select等,而不是用扩展的api的话,不用widnows下的非阻塞api的话,并且字符处理和数据处理,以及基本的数据结构,都自己实现,那估计在unix,bsd,。。。畅通无阻,在任何系统上修改一下相应的头文件名称,重新编译一下就行了。
icelemon1314
2011-06-20
打赏
举报
回复
拿到Linux 下编译 然后把错误全部搞定~ 就OK了~~~
葳蕤
2011-06-20
打赏
举报
回复
相对于移植程序,更关注一开始就设定平台无关框架,做多平台支持的程序。大多开源程序都是如此,就是不清楚其是如何一步步开发构建起来的,CMake?
就想叫yoko
2011-06-20
打赏
举报
回复
用了太多就不好改了
jdk_mo
2011-06-20
打赏
举报
回复
如果你在原来的程序中大量用了Windows API的话,建议你不要移植了,重新写吧!!还少烦恼呢。。
加载更多回复(7)
Windows
下的
C++
程序
移植
到
linux
下
有时候,需要将原本
Windows
下成功运行的
C++
代码
移植
到
linux
系统下,过程往往不是特别顺利,下面列出几个
移植
过程中需要注意的几个
问题
1、#include<
windows
.h> 非win平台不能使用 2、#pragma once 避免同一个文件被包含多次,可
移植
性不好,
linux
下就会报错,还有一种相同功能的 是#ifndef是通用的,具体用法如下 #ifndef MA...
Windows
下
C++
程序
移植
到
Linux
上的几个
问题
及解决方法
今天帮朋友从
Windows
下
移植
一个小
程序
到
Linux
下,遇到了两个
问题
,在这里分享一下解决方法。 刚开始觉得,
移植
应该很简单,就是重新再
Linux
下编译一次就可以了。但是遇到了,不少
问题
。下面一一说明。 1、fopen_s()函数报错。 原因是,fopen_s()这个函数并不是标准的
C++
库中的函数,是微软特有的,也就是说如果你用VS编译不会有
问题
,但是如果你
C/
C++
Windows
移植
到
Linux
转载来源: C/
C++
Windows
移植
到
Linux
近期写了有关Socket的
程序
,需要从
windows
移植
到
linux
。现把有用的东东收集整理记录下来。 1.头文件
windows
下winsock.h或winsock2.h;
linux
下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了)。 2.初始化w...
Windows
下
程序
向
Linux
下
移植
实践
一、
问题
的提出 在
程序
员中有这样一个说法,若一个
程序
不能
移植
到
Linux
下,那这个
程序
将看不到未来。 由于
Linux
操作系统源码公开是的,开发库等辅助工具都是源码公开的,这样就减少了
程序
的不可预知性,而且出现错误可以大家一起修正、完善,而
Windows
平台下所有的操作系统Api就给了个接口,即使出现莫名奇妙的错误也只能望着接口兴叹了。再加上
Linux
操作系统本身和它上面的许多工具软件是免费的,更是吸引了更多的公司和
程序
开发人员将
程序
开发转向
Linux
。 在
程序
跨平台的
移植
过程中,将存在操...
windows
C++
代码
移植
linux
平台 的一些坑
问题
一:
库 多线程在
linux
下面,报错“undefined reference to `pthread_create”。但是在
windows
平台上编译是没有
问题
。这里
linux
上的gcc编译器会把模板的尖括号“<” 识别成 “小于号”在
windows
下编译是没有
问题
的。
linux
下使用cmake,make 编译代码。
问题
二:模板类继承模板父类,无法在子类中访问到父类的成员变量。使用类的模板成员函数时,报一些奇怪的错误, 比如。插入 template 关键字。在cmake最后两段加上。
C++ 语言
64,670
社区成员
250,489
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章