首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨平台编程

跨平台编程
EN

Stack Overflow用户
提问于 2009-05-07 19:11:24
回答 12查看 4.9K关注 0票数 6

我需要为这所大学写一个小程序。问题是,它必须是在linux下的C/C++,而我从来没有用过linux,我预计在IDE、编译等方面会有很多问题。

有没有可能在windows下编码,然后“复制/粘贴”代码,然后在linux下编译?如果可能的话,我应该知道哪些限制?

这将是一个小程序,典型的使用套接字的客户端/服务器通信。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-05-07 19:16:04

我认为你应该在Linux下做这件事(gcc?)。这将教你一些关于“老式”编程的东西。忘记使用IDE,使用vim (如果你已经有了)或nedit (更像记事本)。

在命令行上编译。自己链接它。写一个make文件来做这件事。

这是最基本的。在使用IDE之前,您需要了解它。在你还在上大学的时候就这样做吧,因为这很痛苦,而且你会(也应该)想要使用IDE来做真正的工作!

此外,对Unix有一个基本的理解并不难(我已经找到了关于Solaris、Ubuntu和OS的方法,来自Windows背景)--几个简单的教程就可以让你上手了。对于编写小型的学校项目,你不需要知道太多:cdlsmkdirmakegcc (一定要在C++项目中使用g++ --我以前在我的Mac上也有过这样的经历……)。请靠近您的主目录(~)。

在目标系统上做项目会帮助你做好某些事情:在做这些简单的套接字和pthread示例时,我发现编译和链接它们是非平台可移植的。在某些系统上,库中的链接需要以这种方式进行,而在其他系统上则需要以这种方式进行。

:如果你真的想在下做到这一点,你最好的选择就是在Windows下有一个环境。如果我没记错的话,POSIX套接字与Windows网络模型是不同的。

尝试MinGW或Cygwin。两者都将为您提供Windows下的*nix开发环境。您可以使用您最喜欢的文本编辑器(vim?的Windows端口?)使用cmd.exe而不是bash启动编译器:)

编辑:抱歉,如果语气是对抗性的(根据评论)。我会试着让它柔和一点。只是..。我见过相当多的人试图用IDE学习C/C++ (或Java ),并逐渐相信他们会成为入门的障碍。当然,你将需要更好的工具来开发现实生活中的程序,但学校样本项目的项目文件等开销增加了混乱。这也使得把你的作业通过电子邮件发送给你的老师变得更加困难--一个包含一堆.c和.h文件的压缩文件和一个makefile文件真的是非常简单……

票数 27
EN

Stack Overflow用户

发布于 2009-05-07 19:16:14

如果您需要在Windows中进行编码,我建议使用mingw/msys作为开发环境。Msys在windows上实现了一个类似unix的shell,mingw是gnu compiler collection (gcc)和其他gnu构建工具在windows平台上的一个移植。它是一个开源项目,非常适合这项任务。

安装过程可能有点棘手,但我发现从here开始是最好的选择。

票数 8
EN

Stack Overflow用户

发布于 2009-05-07 19:17:24

从技术上讲,您可以编写大量代码,这些代码只需很少的更改即可跨windows和linux平台运行。

然而,在某些情况下,事情会变得棘手。从linux API windows转到->通常比从windows API转到windows -> linux容易,因为Windows用户倾向于使用没有linux等效项的Windows API调用。

如果你打算使用GUI,你会想要尝试使用跨平台的GUI。Qt或wxWidgets都是不错的选择。尤其是Qt,它还有许多跨平台的实用程序类,这些工具类位于GUI空间之外,可能有助于解决套接字问题。

如果你的目标真的只是让它在linux上运行,而这个软件不一定要在Windows上运行,我建议你直接跳起来,从一开始就尝试让它在Windows上运行。这将比尝试移植更容易。

至于Linux IDE --在某一时刻,计划开始使用Linux工具--你将需要一个不同的构建系统(除非你使用cmake或scons这样的跨平台解决方案),如果你使用IDE等,将会有不同的IDE。

KDevelop是一个很好的集成开发环境,如果您习惯于在集成集成开发环境中工作,它将比试图从命令行做所有事情更熟悉。

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

https://stackoverflow.com/questions/836469

复制
相关文章

相似问题

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