我可以在Linux上使用Visual C编译C吗?

我可以在Linux上使用Visual C编译C吗?,c,linux,compilation,mingw,C,Linux,Compilation,Mingw,我正在Visual Studio上用C语言开发一个教育系统。我将通过web服务器支持此服务 问题是我的服务器运行的是Linux操作系统。我可以在Linux上使用Visual C编译C代码吗?它必须编译为Windows可执行文件(*.exe) 通过搜索,我得到了答案:“你可以用MinGW编译C”。然而,我使用了许多Windows API,我不相信这个答案。(_beginthreadex、FillConsoleOutputCharacter、CreateConsoleScreenBuffer等等)

我正在Visual Studio上用C语言开发一个教育系统。我将通过web服务器支持此服务

问题是我的服务器运行的是Linux操作系统。我可以在Linux上使用Visual C编译C代码吗?它必须编译为Windows可执行文件(*.exe)

通过搜索,我得到了答案:“你可以用MinGW编译C”。然而,我使用了许多Windows API,我不相信这个答案。(_beginthreadex、FillConsoleOutputCharacter、CreateConsoleScreenBuffer等等)

如果我想在Linux系统上将C代码编译成Windows可执行文件,是否必须使用MinGW进行开发

我可以在Linux上使用visual C编译C吗

不,实际上你不能(当然你不应该)。顺便说一句,如果您坚持一些C标准,如(请参阅)或C99,或者您可能不太关心某个特定的编译器

但是我使用了很多windows API

正如您所猜测的,这些是特定于的,您无法在Linux上获得(或使用)它们(并且您可能需要Microsoft许可证才能使用WinAPI运行程序)。请注意,它能够在Linux和某些Windows上运行(但您可能无法通过某些web服务器使用它)

你应该使用POSIX线程(是一个好的教程)——或者考虑C++中的编码和使用它的库(因为C11库在Linux上太近了,而且可能也在Windows上!) 我的建议:

    >P>如果您的程序是HTTP服务器,请考虑使用一些HTTP服务器库,或者(或可能用来让您的应用程序与其他Web服务器通信)。如果你这样做,就要熟悉(和其他网络技术,例如)

  • 如果您的应用程序需要终端界面(而不是web界面!),请使用

  • 如果您的应用程序需要GUI界面(而不是web界面!),请使用类似或的界面(这些界面是跨平台的,因此您的代码可以移植到其他操作系统)

  • <> >跨平台移植性问题,考虑使用C++框架,如,./p>
  • 在自己的笔记本电脑上安装和使用Linux很容易,而且Linux对开发人员非常友好。阅读一些Linux系统编程书(可能是旧的)。另见

请注意,WinAPI是(微软的)专有技术,但它是一个标准规范(而Linux实际上主要与POSIX兼容)

我必须和mingw一起发展吗

我建议在您的开发机器上安装并使用Linux,然后使用和/或(在命令行上,但您可能会使用诸如或之类的工具)。不要忘记启用所有警告和调试信息(例如,使用
g++-Wall-Wextra-g
编译)。当然,您需要为Linux和POSIXAPI(而不是Windows API)进行开发

(它将使您的代码适应Linux和POSIX API,这将占用您大部分的工作,而不是使用完全符合C99或C11或C++11或C++14标准的or,并接受许多常见选项。)

我还建议您在上的某些许可证下发布源代码。然后你可能会得到一些帮助

您可能对感兴趣,因为在某些情况下,您可能会在Windows上运行Linux可执行文件

(但我不知道细节,因为我从未使用过Windows)

PS:如果你想为Windows编译,把Windows放在笔记本电脑上更简单;因为不太方便

我必须和mingw一起发展吗

MinGW只是Windows操作系统的一个GCC端口,没有其他功能。也就是说,您可以直接在Windows上编译Windows特定的代码,或者在GNU/Linux上交叉编译相同的代码,然后在Windows上运行可执行文件。 GCC——意味着GNU编译器集合,它有C、C++、Objic C和一些其他编译器。GCC C编译器是GNU linux使用的主要C编译器

我可以在linux上使用visual c编译c吗

不可以,因为visual studio C编译器未移植到GNU/Linux。但是您可以使用GCC编译您的C代码

但是我使用了很多windows API,我不相信这个答案。(_beginthreadex、FillConsoleOutputCharacter、CreateConsoleScreenBuffer等)

如果需要在GNU/Linux操作系统上运行为Windows编写的程序,可以使用。例如,在Windows上编译exe文件,并在GNU/Linux上按原样运行

同时,这也不是个好主意。最好使用一些标准或跨平台API。然后使用您喜欢的任何编译器为您想要使用的操作系统编译它

例如

  • thrd_创建而不是_beginthreadex
  • 或者代替Windows控制台特定的功能

  • 你真的想让你的生活复杂化吗?Linux有很多本机开发工具。使用它们。你的软件有多大(数千行源代码)?是吗?我不明白你说的“我将通过web服务器支持此服务”的确切含义。请编辑您的问题,以提高它很多。添加几段文字,解释你的教育系统的功能和规模,并用几句话解释为什么它是一个教育系统。对我来说,这意味着学校(和其他设施)的组织,我不理解与软件的关系。另外,用几句话解释谁会使用你的软件,以及如何使用(通过浏览器?)非常感谢!考虑通过编辑来改进你的问题…这有点混乱和不清楚。在你的问题下看我的评论!我很抱歉。。我英语不好。我制作制作程序并提供给用户的服务。这是windows执行文件。但服务器是linux。所以对不起,我也不是以英语为母语的人。但是请编辑你的问题,也许可以借助你的母语词典和其他语言的帮助。我不明白你说的“提供服务”是什么意思。这与什么有关?不要评论你的问题,但要改进它。如果你改进你的问题,你会得到更好的答案(我也可以)